time="2024-04-23T10:22:31Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: `version` is obsolete" Container integration-test-federation-1 Creating Container integration-test-authorization-1 Creating Container integration-test-experiment-1 Creating Container integration-test-authentication-1 Creating Container integration-test-device-1 Creating Container integration-test-gateway-1 Creating Container integration-test-federation-1 Created Container integration-test-experiment-1 Created Container integration-test-gateway-1 Created Container integration-test-device-1 Created Container integration-test-authentication-1 Created Container integration-test-authorization-1 Created Attaching to authentication-1, authorization-1, device-1, experiment-1, federation-1, gateway-1 gateway-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration gateway-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf gateway-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-create_config.sh gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/authorization_service.conf to /etc/nginx/authorization_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/nginx.conf to /etc/nginx/nginx.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/device_service.conf to /etc/nginx/device_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/experiment_service.conf to /etc/nginx/experiment_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/auth_service.conf to /etc/nginx/auth_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/federation_service.conf to /etc/nginx/federation_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_json_errors.conf to /etc/nginx/api_json_errors.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_backends.conf to /etc/nginx/api_backends.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_gateway.conf to /etc/nginx/api_gateway.conf gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh gateway-1 | /docker-entrypoint.sh: Configuration complete; ready for start up federation-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} federation-1 | {"level":"info","message":"Federation Service started successfully"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization-1 | {"addrs":["localhost:3011"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","subsystem":"opa","time":"2024-04-23T10:23:02Z"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} device-1 | {"level":"info","message":"Device Service started successfully"} authorization-1 | {"client_addr":"127.0.0.1:47896","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2024-04-23T10:23:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47896","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.30772,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:02Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1713867782.6867204} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1713867782.686812} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1713867782.6868284} 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":1713867782.6868489} 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":1713867782.686869} 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":1713867782.6869173,"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":1713867782.6874154} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1713867782.688297} 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:50644","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2024-04-23T10:23:02.704955932Z","id":"01HW57NYHG79EVBYGY953CAG4W","name":"crosslab","updated_at":"2024-04-23T10:23:02.704955932Z"},"request_id":"32eb9496-4997-4802-8ffa-2590670e20ab","subsystem":"openfga","timestamp":1713867782.7050402} 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:50644","raw_request":{"schema_version":"1.1","store_id":"01HW57NYHG79EVBYGY953CAG4W","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01HW57NYJGQTSRPWAY1P9NF3MS"},"request_id":"032ce57f-d048-47a4-8001-360cfb6eee30","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867782.736229} authorization-1 | {"client_addr":"127.0.0.1:47896","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2024-04-23T10:23:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47896","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.265644,"resp_status":204,"subsystem":"opa","time":"2024-04-23T10:23:02Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.63.0/opa_linux_amd64","latest_version":"0.63.0","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.63.0","subsystem":"opa","time":"2024-04-23T10:23:02Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:10 +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.013","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"df5e432b4a66a5feb11677d75f6a8802"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 9ms","method":"HEAD","requestID":"df5e432b4a66a5feb11677d75f6a8802","responseTime":9,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"23/Apr/2024:10:23:10 +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.018","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"525a66c7815a7b2a7bbacf432ec2c7ed"} device-1 | {"level":"info","message":"HEAD /device/status 200 12ms","method":"HEAD","requestID":"7bfec2c0-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"23/Apr/2024:10:23:10 +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.016","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"9c6b106a5b219a9fd69920faa76442e5"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 6ms","meta":{"req":{"headers":{"accept":"*/*","connection":"close","host":"authorization_service","user-agent":"curl/7.81.0","x-request-id":"9c6b106a5b219a9fd69920faa76442e5"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":6}} gateway-1 | {"time_local":"23/Apr/2024:10:23:10 +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.012","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"a2a7cfaf0fd1a99cc52f199bdd22a212"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 9ms","method":"HEAD","requestID":"7c05c7a0-015b-11ef-b1f0-115d33a87bd6","responseTime":9,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"23/Apr/2024:10:23:10 +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.013","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"a63f0405d16fc28e5a22b0736034866b"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 9ms","method":"HEAD","requestID":"7c08d4e0-015b-11ef-a00b-c7a5ec8e8339","responseTime":9,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"23/Apr/2024:10:23:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b1a82375d68f9d4484964f5050754c74"} authentication-1 | {"level":"info","message":"POST /login 201 135ms","method":"POST","requestID":"b1a82375d68f9d4484964f5050754c74","responseTime":135,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5M30.QFJ2XmZqbtwe30JBMSiwzPiSzyv1fhFPlY4AobbnIec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 30ms","method":"GET","requestID":"b6be25b5b7824e4ec5c50fafdce2700a","responseTime":30,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.178164,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867793,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5M30.QFJ2XmZqbtwe30JBMSiwzPiSzyv1fhFPlY4AobbnIec"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6be25b5b7824e4ec5c50fafdce2700a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":28}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d4ca4242-9630-4a1f-9f83-1312e5c730bc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.8044062} 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":"b6be25b5b7824e4ec5c50fafdce2700a"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe10dcb9-cc7e-483f-8500-bd368c742d0f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.8198295} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6be25b5b7824e4ec5c50fafdce2700a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"cf2512b6-1477-4423-87d6-1f13f2077a14","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.8349886} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4f52916b-d61a-4694-b709-afaadd4f20cc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.835783} 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":"b6be25b5b7824e4ec5c50fafdce2700a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.834961191Z"}]},"request_id":"92bb478b-8386-422f-8220-b1673dabcadf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.8441865} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6be25b5b7824e4ec5c50fafdce2700a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.302","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b6be25b5b7824e4ec5c50fafdce2700a"} device-1 | {"level":"info","message":"POST /devices? 201 247ms","method":"POST","requestID":"b6be25b5b7824e4ec5c50fafdce2700a","responseTime":247,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5M30.QFJ2XmZqbtwe30JBMSiwzPiSzyv1fhFPlY4AobbnIec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"715fb37b74061458f14ebecf841c8961","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.153118,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867793,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5M30.QFJ2XmZqbtwe30JBMSiwzPiSzyv1fhFPlY4AobbnIec"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"715fb37b74061458f14ebecf841c8961"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"59fd5575-ac36-4afd-a3d1-11abc314ce1f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.9248023} 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":"715fb37b74061458f14ebecf841c8961"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"420f777f-4ebe-43ff-a97a-7d1abd0c9948","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.9432826} 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":"715fb37b74061458f14ebecf841c8961"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"3f7a8219-6eb5-4d7a-8741-f5e1ebd722a0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.962295} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ddc49abf-bbcc-44a0-87a0-b3bcefa67b4c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.9625072} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"715fb37b74061458f14ebecf841c8961"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.962263418Z"}]},"request_id":"f0671062-2f81-49c9-a138-ec15c1f5fa29","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867793.9757416} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"715fb37b74061458f14ebecf841c8961"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.112","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"715fb37b74061458f14ebecf841c8961"} device-1 | {"level":"info","message":"POST /devices? 201 104ms","method":"POST","requestID":"715fb37b74061458f14ebecf841c8961","responseTime":104,"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":"9e8ced791e3e2fe9755ab077887bc33d","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c2fb594497b0a577653d30250efc443c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ad11d4a9-8534-4207-8767-703cfcd529f5/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":"9e8ced791e3e2fe9755ab077887bc33d"} device-1 | {"level":"info","message":"OPTIONS /devices/ad11d4a9-8534-4207-8767-703cfcd529f5/websocket 200 2ms","method":"OPTIONS","requestID":"9e8ced791e3e2fe9755ab077887bc33d","responseTime":2,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/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":"c2fb594497b0a577653d30250efc443c"} device-1 | {"level":"info","message":"OPTIONS /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/websocket 200 2ms","method":"OPTIONS","requestID":"c2fb594497b0a577653d30250efc443c","responseTime":2,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"8dfc73b6e8cf60ccf16ec7cfa1a02dc1","responseTime":7,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"eca16e6a6e0e2f6ed405ea19d72a3c1d","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933434,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"8dfc73b6e8cf60ccf16ec7cfa1a02dc1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.195569,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} authorization-1 | {"level":"info","message":"POST /authorize 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eca16e6a6e0e2f6ed405ea19d72a3c1d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.066","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eca16e6a6e0e2f6ed405ea19d72a3c1d"} device-1 | {"level":"info","message":"POST /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/websocket 200 53ms","method":"POST","requestID":"eca16e6a6e0e2f6ed405ea19d72a3c1d","responseTime":53,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ad11d4a9-8534-4207-8767-703cfcd529f5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.082","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8dfc73b6e8cf60ccf16ec7cfa1a02dc1"} device-1 | {"level":"info","message":"POST /devices/ad11d4a9-8534-4207-8767-703cfcd529f5/websocket 200 74ms","method":"POST","requestID":"8dfc73b6e8cf60ccf16ec7cfa1a02dc1","responseTime":74,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"22043f993d931fd1178f14dd1deb8475","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.852584,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"22043f993d931fd1178f14dd1deb8475"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.834961191Z"}]},"request_id":"9e6257e9-4e9a-418f-84bc-71930873e010","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.3540828} 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":"22043f993d931fd1178f14dd1deb8475"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ad11d4a9-8534-4207-8767-703cfcd529f5? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"22043f993d931fd1178f14dd1deb8475"} device-1 | {"level":"info","message":"GET /devices/ad11d4a9-8534-4207-8767-703cfcd529f5? 200 46ms","method":"GET","requestID":"22043f993d931fd1178f14dd1deb8475","responseTime":46,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"16eae7d2a0f52230c0110d20b7a88d06","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20006,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"16eae7d2a0f52230c0110d20b7a88d06"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.962263418Z"}]},"request_id":"4e564250-eec7-461a-b547-234b4b43270c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.4101627} 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":"16eae7d2a0f52230c0110d20b7a88d06"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"16eae7d2a0f52230c0110d20b7a88d06"} device-1 | {"level":"info","message":"GET /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1? 200 31ms","method":"GET","requestID":"16eae7d2a0f52230c0110d20b7a88d06","responseTime":31,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"bc32bc196aff8132d180097183e25fc8","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:39874","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.33256,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc32bc196aff8132d180097183e25fc8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"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:39874","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.782985,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"7f9ef3f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.680226,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"7f9f4210-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.834961191Z"}]},"request_id":"03d84d0a-80a0-4938-a488-964eca208022","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.6719093} 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":"7f9ef3f0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.962263418Z"}]},"request_id":"577684df-5801-4ec5-b9d7-039289063b18","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.6735673} 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":"7f9f4210-015b-11ef-b963-057e09d3e358"},"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/ad11d4a9-8534-4207-8767-703cfcd529f5? 200 31ms","method":"GET","requestID":"7f9ef3f0-015b-11ef-b963-057e09d3e358","responseTime":31,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1? 200 31ms","method":"GET","requestID":"7f9f4210-015b-11ef-b963-057e09d3e358","responseTime":31,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"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/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.759639,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7fb2ca10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.567271,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"7fb31830-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"605898f6-9cb1-4287-88d7-bbfafde4f0ee","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.808448} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.452297,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.962263418Z"}]},"request_id":"e624eab8-4956-49a9-879f-e99f7584ea16","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.809075} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","rebac_allow":false,"scope_allow":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":"7fb38d60-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} 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":"7fb31830-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.834961191Z"}]},"request_id":"7adcc9b9-27a5-4a06-bcc7-d5339df07786","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.8120296} authorization-1 | {"level":"info","message":"POST /relations/query 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7fb2ca10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fede8d9d3-a125-4738-9b7b-2abe345cf4a6#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fede8d9d3-a125-4738-9b7b-2abe345cf4a6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c057657c-9383-4b2d-bcac-ce0f922c6c5b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.8208869} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling 200 34ms","method":"POST","requestID":"7fb38d60-015b-11ef-b963-057e09d3e358","responseTime":34,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1? 200 39ms","method":"GET","requestID":"7fb31830-015b-11ef-b963-057e09d3e358","responseTime":39,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a92fdf27-db8c-47f9-bcb7-5b8069d2fa55","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.8282614} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"bc32bc196aff8132d180097183e25fc8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":29}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ad11d4a9-8534-4207-8767-703cfcd529f5? 200 48ms","method":"GET","requestID":"7fb2ca10-015b-11ef-b963-057e09d3e358","responseTime":48,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3576701f-fac1-4a3e-b932-cc6f1c547dd9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.8355873} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.653403,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","rebac_allow":false,"scope_allow":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":"7fb980d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling 200 15ms","method":"POST","requestID":"7fb980d0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.415","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bc32bc196aff8132d180097183e25fc8"} experiment-1 | {"level":"info","message":"POST /experiments? 201 389ms","method":"POST","requestID":"bc32bc196aff8132d180097183e25fc8","responseTime":389,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a2c98c4f-3de7-4de5-9b97-33c431190a6d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.8465135} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.047801,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","rebac_allow":false,"scope_allow":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":"7fbb2e80-015b-11ef-b963-057e09d3e358"},"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/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling 200 13ms","method":"POST","requestID":"7fbb2e80-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ca88ae1e79d11960d75a870813052dce","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908775,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"ca88ae1e79d11960d75a870813052dce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3dfe32dd-179e-4086-8b65-54f05fb6e58a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.8627455} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.56548,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"7fbdc690-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.834961191Z"}]},"request_id":"6144d12d-64bc-4493-a6c1-239ccd7c4c94","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.8674636} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling 200 11ms","method":"POST","requestID":"7fbdc690-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/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":"ca88ae1e79d11960d75a870813052dce"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"59d0697a-5992-4a64-8ab4-b717bec9140d"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"6dd9f4f2-6d36-41e6-9b8a-f1c38edb0939"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"43388942-27b1-4a85-9cb0-6135ca996010"}]},"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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ad11d4a9-8534-4207-8767-703cfcd529f5? 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":"ca88ae1e79d11960d75a870813052dce"} device-1 | {"level":"info","message":"GET /devices/ad11d4a9-8534-4207-8767-703cfcd529f5? 200 18ms","method":"GET","requestID":"ca88ae1e79d11960d75a870813052dce","responseTime":18,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5?"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bfff35983504fe3fc42a06dbb26309de","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.946862,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} 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":"7fc0acc0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.817677,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867796,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5Nn0.peMmyIK6D9EVmcAahXJJvH_NnNwAvwLHUtGoQdT6f70"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bfff35983504fe3fc42a06dbb26309de"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:13.962263418Z"}]},"request_id":"a874b7ec-c674-4a10-aa7d-9c00841bac08","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.890174} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bfff35983504fe3fc42a06dbb26309de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1? 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":"bfff35983504fe3fc42a06dbb26309de"} device-1 | {"level":"info","message":"GET /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1? 200 15ms","method":"GET","requestID":"bfff35983504fe3fc42a06dbb26309de","responseTime":15,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"821c5e7b-6fa8-4973-b826-220e245f4af8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.9175627} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"818de5ba-5b51-496a-aab5-4d63879941ae","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.9177582} 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":"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":"7fc0acc0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":28}} 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/0e677d51-2544-4b39-9e69-8f7829550027'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027'"} 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 60ms","method":"POST","requestID":"7fc0acc0-015b-11ef-b963-057e09d3e358","responseTime":60,"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/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b8a0c82f-bf9c-49df-bc1e-1f479f594b05","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.9814856} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.732927,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","rebac_allow":false,"scope_allow":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":"7fcfef00-015b-11ef-b963-057e09d3e358"},"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/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling 200 11ms","method":"POST","requestID":"7fcfef00-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"55d98edc-2ff0-445a-af24-e6b572979ae4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867796.9984787} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.590995,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"7fd26000-015b-11ef-b963-057e09d3e358"},"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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling 200 11ms","method":"POST","requestID":"7fd26000-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0e677d51-2544-4b39-9e69-8f7829550027","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":"5bf248fb0debe8282b2d1698ae38a593","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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"0e677d51-2544-4b39-9e69-8f7829550027","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"5bf248fb0debe8282b2d1698ae38a593","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"5bf248fb0debe8282b2d1698ae38a593"} device-1 | {"data":{"peerconnection":"0e677d51-2544-4b39-9e69-8f7829550027","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/0e677d51-2544-4b39-9e69-8f7829550027' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0e677d51-2544-4b39-9e69-8f7829550027","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":"2822e1991ee1c4f261c0d8995eb5ebb8","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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0e677d51-2544-4b39-9e69-8f7829550027","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c828b114-8e16-4c6f-867b-bfdcccad172a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.2793887} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.847443,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027","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":"7ffd1980-015b-11ef-b963-057e09d3e358"},"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/0e677d51-2544-4b39-9e69-8f7829550027 200 14ms","method":"GET","requestID":"7ffd1980-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"2822e1991ee1c4f261c0d8995eb5ebb8","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"2822e1991ee1c4f261c0d8995eb5ebb8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c73a5e79-87c5-4836-bfe4-896ad3903dd0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.3175051} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.867099,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","rebac_allow":false,"scope_allow":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":"80030cf0-015b-11ef-b963-057e09d3e358"},"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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling 200 13ms","method":"POST","requestID":"80030cf0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd441f49-f2d1-4a88-a85f-faa72dc8b3cf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.3338065} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.642683,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","rebac_allow":false,"scope_allow":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":"80057df0-015b-11ef-b963-057e09d3e358"},"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/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling 200 14ms","method":"POST","requestID":"80057df0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"18deb270c1ae55b436a741bf5e477960","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.730042,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867797,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM"} 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":"18deb270c1ae55b436a741bf5e477960"},"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/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"18deb270c1ae55b436a741bf5e477960"} experiment-1 | {"level":"info","message":"GET /experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6 200 18ms","method":"GET","requestID":"18deb270c1ae55b436a741bf5e477960","responseTime":18,"status":200,"url":"/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c63c3f377c136c40adfb3909b3115ed9","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.213257,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867797,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM"} 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":"c63c3f377c136c40adfb3909b3115ed9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.725326,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867797,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM"} 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":"800eccc0-015b-11ef-b963-057e09d3e358"},"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/0e677d51-2544-4b39-9e69-8f7829550027' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0e677d51-2544-4b39-9e69-8f7829550027","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":"f2a6100a92306ffc9292a89b0e2f597c","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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027"}}},"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":"4c70e6605673ca8df232f0054e99a96c","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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0e677d51-2544-4b39-9e69-8f7829550027': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0e677d51-2544-4b39-9e69-8f7829550027","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"86dcf142-6d16-4c74-a508-756eed4ca19b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.4246523} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb9c7332-39af-4f2b-aa7b-0dee0c42790d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.4249735} 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":"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":"800eccc0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"data":{"peerconnection":"0e677d51-2544-4b39-9e69-8f7829550027","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/0e677d51-2544-4b39-9e69-8f7829550027 204 58ms","method":"DELETE","requestID":"800eccc0-015b-11ef-b963-057e09d3e358","responseTime":58,"status":204,"url":"/peerconnections/0e677d51-2544-4b39-9e69-8f7829550027"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3499addd-478f-4a8f-8833-d15dd88c4f21","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.486872} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.432538,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1","object_type":"device","rebac_allow":false,"scope_allow":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":"801caf70-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling 200 19ms","method":"POST","requestID":"801caf70-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fede8d9d3-a125-4738-9b7b-2abe345cf4a6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fede8d9d3-a125-4738-9b7b-2abe345cf4a6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"533e1150-75b9-4f39-947a-72c0b9b30ceb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.5073173} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a5a33c1f-0865-4888-a63e-2626ba10ca00","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.5077379} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","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":"c63c3f377c136c40adfb3909b3115ed9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":33}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fad11d4a9-8534-4207-8767-703cfcd529f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6fa62651-c116-4d68-ab0b-9485fc4dce24","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.5121644} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.764506,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5","object_type":"device","rebac_allow":false,"scope_allow":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":"802031e0-015b-11ef-b963-057e09d3e358"},"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/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling 200 18ms","method":"POST","requestID":"802031e0-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/ad11d4a9-8534-4207-8767-703cfcd529f5/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.217","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c63c3f377c136c40adfb3909b3115ed9"} experiment-1 | {"level":"info","message":"DELETE /experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6 204 213ms","method":"DELETE","requestID":"c63c3f377c136c40adfb3909b3115ed9","responseTime":213,"status":204,"url":"/experiments/ede8d9d3-a125-4738-9b7b-2abe345cf4a6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 176ms","method":"POST","requestID":"f2a6100a92306ffc9292a89b0e2f597c","responseTime":176,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch","requestID":"f2a6100a92306ffc9292a89b0e2f597c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"de36ac418e4b9bd39e32f0a8856a6f82","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 177ms","method":"POST","requestID":"4c70e6605673ca8df232f0054e99a96c","responseTime":177,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"4c70e6605673ca8df232f0054e99a96c"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2062","request_time":"1.301","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a12c9eeaff93a7fab4e556cd6425ac88"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2197","request_time":"1.310","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"fa43c48c7648805de936b4ae7ca9b4f4"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.74624,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867797,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM"} 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":"de36ac418e4b9bd39e32f0a8856a6f82"},"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/0c7d9f45-35d5-4dfe-8396-cc1cb24c95f1' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ad11d4a9-8534-4207-8767-703cfcd529f5' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7ec5c66a-e14c-4aa4-bb01-758038323129","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6203346} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de36ac418e4b9bd39e32f0a8856a6f82"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"81ce60f2-070b-4ff6-b073-7e2e98c1fa11","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.625806} 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":"de36ac418e4b9bd39e32f0a8856a6f82"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"aaf835ea-3763-474a-8e2b-78886bfcfca2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6374745} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89f3401f-afa7-45d5-9246-fa25eb59bffd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6376202} 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":"de36ac418e4b9bd39e32f0a8856a6f82"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.637464736Z"}]},"request_id":"367d4a5e-73c0-4d66-b936-f2b88310e58b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.641901} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de36ac418e4b9bd39e32f0a8856a6f82"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +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":"de36ac418e4b9bd39e32f0a8856a6f82"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"de36ac418e4b9bd39e32f0a8856a6f82","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b0fce2dbca73d8b7e85533f99ac6e2c9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.748364,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867797,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5N30.ifYltx9ATKA_qJZZkuJ2sqmovM-3DZmgofaw_r4RXpM"} 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":"b0fce2dbca73d8b7e85533f99ac6e2c9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9642e39a-84d6-44a5-af8d-c10e0b17bd0b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6742668} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b0fce2dbca73d8b7e85533f99ac6e2c9"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78436791-5925-4788-829d-95794cf879f6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6791644} 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":"b0fce2dbca73d8b7e85533f99ac6e2c9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"2324c3cd-7df0-4bb2-b1da-8693db5d3a4a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6916149} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"50a25210-8acf-4593-84ea-1b03a157445b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6919868} 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":"b0fce2dbca73d8b7e85533f99ac6e2c9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.691596792Z"}]},"request_id":"48306f0a-e1e1-4323-b9bf-cd35b766d065","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867797.6980004} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b0fce2dbca73d8b7e85533f99ac6e2c9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"b0fce2dbca73d8b7e85533f99ac6e2c9","responseTime":49,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b0fce2dbca73d8b7e85533f99ac6e2c9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OH0.XX0aKX2ESeGfEQ7z3BVkc5Bj8Hxwv3eecz6UiVPMFCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"62e3ed7d2d0e4e8762d3d0487faa7d52","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.800282,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867798,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OH0.XX0aKX2ESeGfEQ7z3BVkc5Bj8Hxwv3eecz6UiVPMFCk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"62e3ed7d2d0e4e8762d3d0487faa7d52"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.691596792Z"}]},"request_id":"2cce074c-291f-4633-9e8e-058209f69172","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867798.3211906} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"62e3ed7d2d0e4e8762d3d0487faa7d52"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f3ece72c-bfaa-49fd-9503-66d72f1cbd0a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867798.3289878} 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":"62e3ed7d2d0e4e8762d3d0487faa7d52"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.691596792Z"}]},"request_id":"b5cb9a88-7bb8-4fc7-9ad9-a78a5bbd3e49","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867798.3449967} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"62e3ed7d2d0e4e8762d3d0487faa7d52"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.068","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"62e3ed7d2d0e4e8762d3d0487faa7d52"} device-1 | {"level":"info","message":"PATCH /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc 200 61ms","method":"PATCH","requestID":"62e3ed7d2d0e4e8762d3d0487faa7d52","responseTime":61,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OH0.XX0aKX2ESeGfEQ7z3BVkc5Bj8Hxwv3eecz6UiVPMFCk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2ef53b0f06417cb1d76208f328a7e335","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.499986,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867798,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OH0.XX0aKX2ESeGfEQ7z3BVkc5Bj8Hxwv3eecz6UiVPMFCk"} 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":"2ef53b0f06417cb1d76208f328a7e335"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/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":"2ef53b0f06417cb1d76208f328a7e335"} device-1 | {"level":"info","message":"POST /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/websocket 200 24ms","method":"POST","requestID":"2ef53b0f06417cb1d76208f328a7e335","responseTime":24,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc' 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":"e593f879811f720da9b7b2cdd763d10a","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/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":"e593f879811f720da9b7b2cdd763d10a"} device-1 | {"level":"info","message":"OPTIONS /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/websocket 200 1ms","method":"OPTIONS","requestID":"e593f879811f720da9b7b2cdd763d10a","responseTime":1,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"80323237168604d8869cca64e26af8c9","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.247823,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} 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":"80323237168604d8869cca64e26af8c9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.049","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"80323237168604d8869cca64e26af8c9"} device-1 | {"level":"info","message":"POST /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/websocket 200 41ms","method":"POST","requestID":"80323237168604d8869cca64e26af8c9","responseTime":41,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"639ffc0c1d8869d1ea45643a5eda3789","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.342028,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} 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":"639ffc0c1d8869d1ea45643a5eda3789"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.637464736Z"}]},"request_id":"cfb05d18-e85d-4d27-b0e9-2a252be7ce25","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867799.7869213} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"639ffc0c1d8869d1ea45643a5eda3789"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"639ffc0c1d8869d1ea45643a5eda3789"} device-1 | {"level":"info","message":"GET /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6? 200 22ms","method":"GET","requestID":"639ffc0c1d8869d1ea45643a5eda3789","responseTime":22,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a7abe70373e4b4fbf13b43da693b0e36","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.29719,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a7abe70373e4b4fbf13b43da693b0e36"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.691596792Z"}]},"request_id":"1ae320a1-3f47-4c81-989a-e0f733e63da1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867799.8186958} 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":"a7abe70373e4b4fbf13b43da693b0e36"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc? 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":"a7abe70373e4b4fbf13b43da693b0e36"} device-1 | {"level":"info","message":"GET /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc? 200 23ms","method":"GET","requestID":"a7abe70373e4b4fbf13b43da693b0e36","responseTime":23,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cc6b7f483f3936248abc3b3be24bc39b","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:39874","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.129987,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} 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":"cc6b7f483f3936248abc3b3be24bc39b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"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:39874","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.029309,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"818edd10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.8003,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"818f0420-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.637464736Z"}]},"request_id":"df670780-602e-4d95-87c6-7273b7784e5a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867799.915877} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"818edd10-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.691596792Z"}]},"request_id":"b63e5a2e-0403-4428-8ddf-5d6967380558","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867799.9183562} 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":"818f0420-015b-11ef-b963-057e09d3e358"},"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/ca9fd857-474c-418d-a773-b3abdf7aafc6? 200 19ms","method":"GET","requestID":"818edd10-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc? 200 18ms","method":"GET","requestID":"818f0420-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"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:39874","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.777844,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} 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":"819c4a90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.713334,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} 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":"819cbfc0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.048489,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b6bc88ea-9132-4d91-8e41-4c0eca7241de","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0105608} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","rebac_allow":false,"scope_allow":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":"819d0de0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.637464736Z"}]},"request_id":"6ef49de9-0a45-418c-8a50-859e590479b4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.015562} 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":"819c4a90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.691596792Z"}]},"request_id":"b7dce42c-2c4a-4ea8-b762-22e7bc7ada6b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.021276} 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":"819cbfc0-015b-11ef-b963-057e09d3e358"},"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/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling 200 29ms","method":"POST","requestID":"819d0de0-015b-11ef-b963-057e09d3e358","responseTime":29,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a0b849-50d2-4e94-87db-3eeedc1364f0#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a0b849-50d2-4e94-87db-3eeedc1364f0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"56968dc1-35de-4d08-ba0e-0ba3495ac18c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0292695} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d769a0cc-4d74-4a86-9064-0ffbec188973","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0299315} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cc6b7f483f3936248abc3b3be24bc39b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6? 200 44ms","method":"GET","requestID":"819c4a90-015b-11ef-b963-057e09d3e358","responseTime":44,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} device-1 | {"level":"info","message":"GET /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc? 200 43ms","method":"GET","requestID":"819cbfc0-015b-11ef-b963-057e09d3e358","responseTime":43,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2a852b21-4814-49db-ae2b-343b0794fb40","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.041617} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.466323,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","rebac_allow":false,"scope_allow":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":"81a26510-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} device-1 | {"level":"info","message":"POST /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling 200 15ms","method":"POST","requestID":"81a26510-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:23:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.218","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cc6b7f483f3936248abc3b3be24bc39b"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7350abe4-8881-412d-b9a9-322167bad84f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0505636} experiment-1 | {"level":"info","message":"POST /experiments? 201 211ms","method":"POST","requestID":"cc6b7f483f3936248abc3b3be24bc39b","responseTime":211,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.314071,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"81a439d0-015b-11ef-b963-057e09d3e358"},"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/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling 200 13ms","method":"POST","requestID":"81a439d0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMH0.oaYsAgJ25bhCwhoLFq__Eu7d6YCc4LNZgFnlICs4-mQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9230f684dac75b6f0613af0f3166289c","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:39874","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.833105,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867800,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMH0.oaYsAgJ25bhCwhoLFq__Eu7d6YCc4LNZgFnlICs4-mQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9230f684dac75b6f0613af0f3166289c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"832e10ba-4653-41d9-a364-0f375403350c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0667317} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.058587,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"81a6d1e0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.637464736Z"}]},"request_id":"eb675132-dd56-4f33-8e8e-5007b0a7862b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0711298} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9230f684dac75b6f0613af0f3166289c"},"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/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling 200 15ms","method":"POST","requestID":"81a6d1e0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"ce522084-6400-48c0-af1d-91d90bc381c0"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"e4a25b17-02af-48b0-a4a3-a0bfde6fa723"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3b20b8d5-d297-4412-8fc9-16d816d773c5"}]},"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/b2228e28-c698-4fbe-8f07-31b7582cc4cc"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} gateway-1 | {"time_local":"23/Apr/2024:10:23:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6? 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":"9230f684dac75b6f0613af0f3166289c"} device-1 | {"level":"info","message":"GET /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6? 200 19ms","method":"GET","requestID":"9230f684dac75b6f0613af0f3166289c","responseTime":19,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6?"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMH0.oaYsAgJ25bhCwhoLFq__Eu7d6YCc4LNZgFnlICs4-mQ","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d57c2107ae3c3078067c0f22d0daee97","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.92277,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867799,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzc5OX0.dNRNXuvmsuNfpuA0jGOvW5HeIq_0Ucjh-fCokoIPJyo"} 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":"81a99100-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887851,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867800,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMH0.oaYsAgJ25bhCwhoLFq__Eu7d6YCc4LNZgFnlICs4-mQ"} 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":"d57c2107ae3c3078067c0f22d0daee97"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:17.691596792Z"}]},"request_id":"1db9081d-4881-497d-a99c-980b876fd585","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0939984} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d57c2107ae3c3078067c0f22d0daee97"},"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":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"965d8558-1cc3-4c4a-97a5-b5dd8a445a6f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0981884} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5a7e1a5d-b91b-434d-979c-505ee044b28b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.0983763} gateway-1 | {"time_local":"23/Apr/2024:10:23:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc? 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":"d57c2107ae3c3078067c0f22d0daee97"} device-1 | {"level":"info","message":"GET /devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc? 200 14ms","method":"GET","requestID":"d57c2107ae3c3078067c0f22d0daee97","responseTime":14,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc?"} 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":"81a99100-015b-11ef-b963-057e09d3e358"},"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/51132342-90fb-48cd-9b35-9094cabb747d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"81a99100-015b-11ef-b963-057e09d3e358","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ecdd14e8-6344-4d1c-a4ca-68a7a11e2862","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.1710095} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.825427,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"81b68950-015b-11ef-b963-057e09d3e358"},"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/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling 200 11ms","method":"POST","requestID":"81b68950-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd9f635e-0723-4910-8167-c4750b86326e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867800.1826448} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.394613,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"81b88520-015b-11ef-b963-057e09d3e358"},"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/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling 200 9ms","method":"POST","requestID":"81b88520-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling"} device-1 | {"data":{"peerconnection":"51132342-90fb-48cd-9b35-9094cabb747d","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/51132342-90fb-48cd-9b35-9094cabb747d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51132342-90fb-48cd-9b35-9094cabb747d","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":"60aef4ab54c44602168995c7936bd03b","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/b2228e28-c698-4fbe-8f07-31b7582cc4cc"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 12ms","method":"POST","requestID":"60aef4ab54c44602168995c7936bd03b","responseTime":12,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch","requestID":"60aef4ab54c44602168995c7936bd03b"} device-1 | {"data":{"peerconnection":"51132342-90fb-48cd-9b35-9094cabb747d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"51132342-90fb-48cd-9b35-9094cabb747d","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/51132342-90fb-48cd-9b35-9094cabb747d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51132342-90fb-48cd-9b35-9094cabb747d","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":"1e6b6b5a420efd8a5554e69ceb8dacb3","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/b2228e28-c698-4fbe-8f07-31b7582cc4cc"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51132342-90fb-48cd-9b35-9094cabb747d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bb2b24ad-02c4-4970-9ed6-0c2fc05bf873","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.2726648} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.381802,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d","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":"825e3b00-015b-11ef-b963-057e09d3e358"},"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/51132342-90fb-48cd-9b35-9094cabb747d 200 18ms","method":"GET","requestID":"825e3b00-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 52ms","method":"POST","requestID":"1e6b6b5a420efd8a5554e69ceb8dacb3","responseTime":52,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch","requestID":"1e6b6b5a420efd8a5554e69ceb8dacb3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97b52690-2f7f-458d-950e-58862c6fae31","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.3148863} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.996032,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","rebac_allow":false,"scope_allow":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":"8264cab0-015b-11ef-b963-057e09d3e358"},"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/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling 200 17ms","method":"POST","requestID":"8264cab0-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40d19dbd-660d-43ac-9625-f0a9fe2ba3d7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.3352816} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.060184,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk","level":"info","message":"auth send jwt"} 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":"8267d7f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"71c1c9b2c2fb0099ba3af29250ed1c21","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling 200 15ms","method":"POST","requestID":"8267d7f0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.009004,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867801,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk"} 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":"71c1c9b2c2fb0099ba3af29250ed1c21"},"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/91a0b849-50d2-4e94-87db-3eeedc1364f0"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"71c1c9b2c2fb0099ba3af29250ed1c21"} experiment-1 | {"level":"info","message":"GET /experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0 200 16ms","method":"GET","requestID":"71c1c9b2c2fb0099ba3af29250ed1c21","responseTime":16,"status":200,"url":"/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"908b2c31ff15ebe079173a9ca302ff8c","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.102882,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867801,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk"} 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":"908b2c31ff15ebe079173a9ca302ff8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.913863,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867801,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk"} 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":"82706370-015b-11ef-b963-057e09d3e358"},"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/51132342-90fb-48cd-9b35-9094cabb747d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51132342-90fb-48cd-9b35-9094cabb747d","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":"d7a269bda60bdfb0cc5cd942f7fd8698","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51132342-90fb-48cd-9b35-9094cabb747d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51132342-90fb-48cd-9b35-9094cabb747d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"4c92056c-d092-46dc-a20c-693aaea61f28","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.4033613} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"87c2fd91-d326-46c8-a07f-988033b40393","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.403672} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ff553e14b102af8c5f651f061a91c197","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/b2228e28-c698-4fbe-8f07-31b7582cc4cc"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d"}}},"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":"82706370-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"51132342-90fb-48cd-9b35-9094cabb747d","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/51132342-90fb-48cd-9b35-9094cabb747d 204 50ms","method":"DELETE","requestID":"82706370-015b-11ef-b963-057e09d3e358","responseTime":50,"status":204,"url":"/peerconnections/51132342-90fb-48cd-9b35-9094cabb747d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2228e28-c698-4fbe-8f07-31b7582cc4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"093c3c8f-8098-4ca1-a294-abddf258c564","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.4682517} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.242202,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc","object_type":"device","rebac_allow":false,"scope_allow":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":"827c2340-015b-11ef-b963-057e09d3e358"},"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/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling 200 16ms","method":"POST","requestID":"827c2340-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/b2228e28-c698-4fbe-8f07-31b7582cc4cc/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a0b849-50d2-4e94-87db-3eeedc1364f0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a0b849-50d2-4e94-87db-3eeedc1364f0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"4a71aa83-1d7b-4404-8382-8f6198605743","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.4791327} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1f3e9819-363d-4257-aeef-6b98dc7b17ac","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.479653} 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":"908b2c31ff15ebe079173a9ca302ff8c"},"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:39874","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca9fd857-474c-418d-a773-b3abdf7aafc6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bbb4b6d9-845d-4a15-8b30-8fac45ecc871","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.4871476} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.665706,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"827f0970-015b-11ef-b963-057e09d3e358"},"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/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling 200 16ms","method":"POST","requestID":"827f0970-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/ca9fd857-474c-418d-a773-b3abdf7aafc6/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0 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":"908b2c31ff15ebe079173a9ca302ff8c"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2197","request_time":"3.155","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cecdef30a6ca1676aab9049e500fc018"} experiment-1 | {"level":"info","message":"DELETE /experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0 204 184ms","method":"DELETE","requestID":"908b2c31ff15ebe079173a9ca302ff8c","responseTime":184,"status":204,"url":"/experiments/91a0b849-50d2-4e94-87db-3eeedc1364f0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 148ms","method":"POST","requestID":"d7a269bda60bdfb0cc5cd942f7fd8698","responseTime":148,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.153","http_referrer":"","http_user_agent":"node-fetch","requestID":"d7a269bda60bdfb0cc5cd942f7fd8698"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"ff553e14b102af8c5f651f061a91c197","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"ff553e14b102af8c5f651f061a91c197"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"f2de7f8adad9ee380eb1d4651ad8a5b6","responseTime":7,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1955","request_time":"1.814","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dfe5f423c3739eb12eca4ab19b379fd8"} 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/b2228e28-c698-4fbe-8f07-31b7582cc4cc' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.928037,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867801,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk"} 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":"f2de7f8adad9ee380eb1d4651ad8a5b6"},"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/ca9fd857-474c-418d-a773-b3abdf7aafc6' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"55075bd9-f09f-4ce3-969a-37aa3f52e651","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.585144} 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":"f2de7f8adad9ee380eb1d4651ad8a5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b08ec21f-be14-45e8-825e-e9b97676ca96","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.5936217} 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":"f2de7f8adad9ee380eb1d4651ad8a5b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"b3e8a024-8a01-4fe3-81bd-b030b9e176aa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6043866} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eac1ab96-3d1f-43f5-8c2d-d345c689f4f0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6047184} 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":"f2de7f8adad9ee380eb1d4651ad8a5b6"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.604374521Z"}]},"request_id":"c59fea7b-3678-4f5f-a19b-546bd98cfb7b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6096995} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2de7f8adad9ee380eb1d4651ad8a5b6"},"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 52ms","method":"POST","requestID":"f2de7f8adad9ee380eb1d4651ad8a5b6","responseTime":52,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f2de7f8adad9ee380eb1d4651ad8a5b6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f7630d7abd4b9fbec6a53c4963622037","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.690202,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867801,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMX0.QW6rGKanAljoHGtRM627zCfjZs_3wOf5dAPgKgNPVDk"} 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":"f7630d7abd4b9fbec6a53c4963622037"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e3849ae9-9c0c-4558-8296-0b9f5c75139b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6352482} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f7630d7abd4b9fbec6a53c4963622037"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"98691896-2220-406e-865a-e6fef7a1f1fb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6405592} 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":"f7630d7abd4b9fbec6a53c4963622037"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"942be489-65b9-4143-89a4-743f20618d33","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6513648} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf44721d-4d87-4eb5-bcbd-79f281590733","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6516562} 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":"f7630d7abd4b9fbec6a53c4963622037"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.651348501Z"}]},"request_id":"1d48f856-226b-496f-93ac-af450b2b1426","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867801.6574523} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f7630d7abd4b9fbec6a53c4963622037"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f7630d7abd4b9fbec6a53c4963622037"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"f7630d7abd4b9fbec6a53c4963622037","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMn0.3Kxa2ucOdmt8fXf7hkNRJRl_X4Y0_VrZvomS0qVAteQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f4419fa662c68299a6d11caacf13c26c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.329693,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867802,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMn0.3Kxa2ucOdmt8fXf7hkNRJRl_X4Y0_VrZvomS0qVAteQ"} 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":"f4419fa662c68299a6d11caacf13c26c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.604374521Z"}]},"request_id":"d332c9a2-9038-4666-acff-2c9e833a021e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867802.154652} 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":"f4419fa662c68299a6d11caacf13c26c"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2cd35985-9723-4746-8169-6d96f12a1d4e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867802.1622343} 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":"f4419fa662c68299a6d11caacf13c26c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.604374521Z"}]},"request_id":"76e617e6-dbcc-4ebe-ba99-10b71b49fc8d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867802.1806648} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4419fa662c68299a6d11caacf13c26c"},"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/4bf52ec3-d97a-47d5-883b-9bfe490813e4 200 45ms","method":"PATCH","requestID":"f4419fa662c68299a6d11caacf13c26c","responseTime":45,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4"} gateway-1 | {"time_local":"23/Apr/2024:10:23:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f4419fa662c68299a6d11caacf13c26c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMn0.3Kxa2ucOdmt8fXf7hkNRJRl_X4Y0_VrZvomS0qVAteQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"113d009a12dc73bf7962b29e3a8ad181","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.146015,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867802,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwMn0.3Kxa2ucOdmt8fXf7hkNRJRl_X4Y0_VrZvomS0qVAteQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"113d009a12dc73bf7962b29e3a8ad181"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/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":"113d009a12dc73bf7962b29e3a8ad181"} device-1 | {"level":"info","message":"POST /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/websocket 200 21ms","method":"POST","requestID":"113d009a12dc73bf7962b29e3a8ad181","responseTime":21,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4' 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":"4c18142fe90f0fd54028fb4c5aed3b19","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/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":"4c18142fe90f0fd54028fb4c5aed3b19"} device-1 | {"level":"info","message":"OPTIONS /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/websocket 200 1ms","method":"OPTIONS","requestID":"4c18142fe90f0fd54028fb4c5aed3b19","responseTime":1,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7bb802315cd6d8f9c1ab2adf120916ce","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.352167,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7bb802315cd6d8f9c1ab2adf120916ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7bb802315cd6d8f9c1ab2adf120916ce"} device-1 | {"level":"info","message":"POST /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/websocket 200 34ms","method":"POST","requestID":"7bb802315cd6d8f9c1ab2adf120916ce","responseTime":34,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"5a5ee64e1b9f5d0f5e4905adbdb05594","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.30645,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} 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":"5a5ee64e1b9f5d0f5e4905adbdb05594"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.604374521Z"}]},"request_id":"87336ee5-3252-4f95-bab5-0de7ae54faea","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867803.7521622} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5a5ee64e1b9f5d0f5e4905adbdb05594"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4? 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":"5a5ee64e1b9f5d0f5e4905adbdb05594"} device-1 | {"level":"info","message":"GET /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4? 200 22ms","method":"GET","requestID":"5a5ee64e1b9f5d0f5e4905adbdb05594","responseTime":22,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c176bdaf9c8f3bbab02068daed4b0cf9","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.163812,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c176bdaf9c8f3bbab02068daed4b0cf9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.651348501Z"}]},"request_id":"d6b2c061-eb0f-46d5-9c9e-9a16bab95267","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867803.7819376} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c176bdaf9c8f3bbab02068daed4b0cf9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82? 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":"c176bdaf9c8f3bbab02068daed4b0cf9"} device-1 | {"level":"info","message":"GET /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82? 200 21ms","method":"GET","requestID":"c176bdaf9c8f3bbab02068daed4b0cf9","responseTime":21,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8d687527ee6a7a6cfe001404549a9cd2","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:39874","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.297046,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} 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":"8d687527ee6a7a6cfe001404549a9cd2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"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:39874","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.135092,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"83eb91c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.800786,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} 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":"83ebdfe0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.604374521Z"}]},"request_id":"a0237677-65cb-4400-921e-e185d565c0d3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867803.8827026} 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":"83eb91c0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.651348501Z"}]},"request_id":"95c8e8ab-08c3-4b80-9a8f-35ce883d8ef2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867803.8844988} 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":"83ebdfe0-015b-11ef-b963-057e09d3e358"},"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/4bf52ec3-d97a-47d5-883b-9bfe490813e4? 200 30ms","method":"GET","requestID":"83eb91c0-015b-11ef-b963-057e09d3e358","responseTime":30,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82? 200 30ms","method":"GET","requestID":"83ebdfe0-015b-11ef-b963-057e09d3e358","responseTime":30,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"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:39874","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.266494,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} 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":"83fd9320-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.572534,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} 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":"83fde140-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.604374521Z"}]},"request_id":"def516a9-d969-40eb-9f12-8fe543f8cd29","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.010666} 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":"83fd9320-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.651348501Z"}]},"request_id":"f8df44b9-2da2-4eac-ba30-36b36e515231","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0121882} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} 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":"83fde140-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"95571c88-d0aa-4274-9cf5-7fc148d3bd69","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0157812} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.784693,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"83fe2f60-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":28}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc88b8bda-56d4-4ae9-996a-21853714c676#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc88b8bda-56d4-4ae9-996a-21853714c676","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"a14084de-9b5f-4027-b520-e19329d25350","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.021031} device-1 | {"level":"info","message":"GET /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4? 200 38ms","method":"GET","requestID":"83fd9320-015b-11ef-b963-057e09d3e358","responseTime":38,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a38e32f1-bdd7-41d3-be25-c9ea4906ca82","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0213478} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82? 200 38ms","method":"GET","requestID":"83fde140-015b-11ef-b963-057e09d3e358","responseTime":38,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82?"} 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":"8d687527ee6a7a6cfe001404549a9cd2"},"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/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling 200 41ms","method":"POST","requestID":"83fe2f60-015b-11ef-b963-057e09d3e358","responseTime":41,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1591f1e2-211d-4a64-ba8b-d4c7c8a8cb13","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.040274} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.249356,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84049800-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"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 250ms","method":"POST","requestID":"8d687527ee6a7a6cfe001404549a9cd2","responseTime":250,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling 200 17ms","method":"POST","requestID":"84049800-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b16a663-6202-4e05-958f-dfc6deb4f09f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0492709} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.692359,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.257","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d687527ee6a7a6cfe001404549a9cd2"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","rebac_allow":false,"scope_allow":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":"840645b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNH0.WxdiYTiatUH6XhjjyXITp20Xgg6SC1Eo-oswfd8xIgc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1b6f6e4624714cfe11fbe47de85181c3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling 200 17ms","method":"POST","requestID":"840645b0-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1868bf54-5790-4117-be36-5b767315c827","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0605917} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.655958,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","rebac_allow":false,"scope_allow":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":"8407f360-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.880538,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867804,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNH0.WxdiYTiatUH6XhjjyXITp20Xgg6SC1Eo-oswfd8xIgc"} 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":"1b6f6e4624714cfe11fbe47de85181c3"},"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/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling 200 17ms","method":"POST","requestID":"8407f360-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.604374521Z"}]},"request_id":"60729027-19d7-4cf0-a924-521aecaa5db5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0720553} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"6d66c778-f342-4503-97d3-57e8b748c64f"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"daa57318-8f2d-4d23-bcf0-e2f3efa2a367"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b052fa9e-705f-44c5-91fc-0dd1e0586e6f"}]},"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/4bf52ec3-d97a-47d5-883b-9bfe490813e4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82"}],"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":"1b6f6e4624714cfe11fbe47de85181c3"},"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:39874","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1b6f6e4624714cfe11fbe47de85181c3"} device-1 | {"level":"info","message":"GET /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4? 200 24ms","method":"GET","requestID":"1b6f6e4624714cfe11fbe47de85181c3","responseTime":24,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.916117,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867803,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwM30.RImUdBJtxPbOQk4RGXdT1Zc3dVm0i94Rp3pNR0l2R8o"} 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":"840b75d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNH0.WxdiYTiatUH6XhjjyXITp20Xgg6SC1Eo-oswfd8xIgc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b3b66fa970bf74953e0d85a05e4b5bfd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.62913,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867804,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNH0.WxdiYTiatUH6XhjjyXITp20Xgg6SC1Eo-oswfd8xIgc"} 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":"b3b66fa970bf74953e0d85a05e4b5bfd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"8d84f576-8d67-4b4a-890e-c895f5d9bfe5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0952258} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"831765b4-a61f-44d8-b63b-6b9a100221d8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.095474} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:21.651348501Z"}]},"request_id":"d79b276e-d090-4804-be76-fe7d9b328278","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.0961943} 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":"840b75d0-015b-11ef-b963-057e09d3e358"},"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":"b3b66fa970bf74953e0d85a05e4b5bfd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82? 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":"b3b66fa970bf74953e0d85a05e4b5bfd"} device-1 | {"level":"info","message":"GET /devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82? 200 15ms","method":"GET","requestID":"b3b66fa970bf74953e0d85a05e4b5bfd","responseTime":15,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82?"} 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/149aa1df-8438-446f-984e-535058281dfe'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 42ms","method":"POST","requestID":"840b75d0-015b-11ef-b963-057e09d3e358","responseTime":42,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9601dd3e-843d-47d2-80e8-5b0cd2f05a36","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.1553702} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.616309,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","rebac_allow":false,"scope_allow":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":"84164b40-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling 200 16ms","method":"POST","requestID":"84164b40-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a381f05c-255a-4f2f-b01c-04aa1fc8ced7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867804.1737742} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.406225,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","rebac_allow":false,"scope_allow":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":"84193170-015b-11ef-b963-057e09d3e358"},"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/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling 200 12ms","method":"POST","requestID":"84193170-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling"} device-1 | {"data":{"peerconnection":"149aa1df-8438-446f-984e-535058281dfe","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/149aa1df-8438-446f-984e-535058281dfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"149aa1df-8438-446f-984e-535058281dfe","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a06c47c40205d91d77d1173e727b1203","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 19ms","method":"POST","requestID":"a06c47c40205d91d77d1173e727b1203","responseTime":19,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.026","http_referrer":"","http_user_agent":"node-fetch","requestID":"a06c47c40205d91d77d1173e727b1203"} device-1 | {"data":{"peerconnection":"149aa1df-8438-446f-984e-535058281dfe","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"149aa1df-8438-446f-984e-535058281dfe","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/149aa1df-8438-446f-984e-535058281dfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"149aa1df-8438-446f-984e-535058281dfe","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":"c54907d5f80733ff0c855680132f3b09","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/4bf52ec3-d97a-47d5-883b-9bfe490813e4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F149aa1df-8438-446f-984e-535058281dfe","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b283d184-b169-4a96-9282-dfbc3618ddcd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.2712471} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.376754,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe","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":"84c06df0-015b-11ef-b963-057e09d3e358"},"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/149aa1df-8438-446f-984e-535058281dfe 200 15ms","method":"GET","requestID":"84c06df0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/peerconnections/149aa1df-8438-446f-984e-535058281dfe"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 48ms","method":"POST","requestID":"c54907d5f80733ff0c855680132f3b09","responseTime":48,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"c54907d5f80733ff0c855680132f3b09"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c20c37b4-d876-4cf1-87f4-eb99d646f7c7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.3106618} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.703033,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","rebac_allow":false,"scope_allow":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":"84c6af80-015b-11ef-b963-057e09d3e358"},"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/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling 200 14ms","method":"POST","requestID":"84c6af80-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"500be052-d648-481f-987a-a742947a9fd3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.329045} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.818678,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","rebac_allow":false,"scope_allow":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":"84c94790-015b-11ef-b963-057e09d3e358"},"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/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling 200 17ms","method":"POST","requestID":"84c94790-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 10ms","method":"GET","requestID":"b775e9df8fbdf4c775a43f9c76546606","responseTime":10,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c88b8bda-56d4-4ae9-996a-21853714c676"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.273675,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867805,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b775e9df8fbdf4c775a43f9c76546606"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c88b8bda-56d4-4ae9-996a-21853714c676"} gateway-1 | {"time_local":"23/Apr/2024:10:23:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c88b8bda-56d4-4ae9-996a-21853714c676 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b775e9df8fbdf4c775a43f9c76546606"} experiment-1 | {"level":"info","message":"GET /experiments/c88b8bda-56d4-4ae9-996a-21853714c676 200 22ms","method":"GET","requestID":"b775e9df8fbdf4c775a43f9c76546606","responseTime":22,"status":200,"url":"/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e6b670e48c661122a9cae1923c712723","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c88b8bda-56d4-4ae9-996a-21853714c676"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.520331,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867805,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","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":"e6b670e48c661122a9cae1923c712723"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.977458,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867805,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo"} 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":"84d57c90-015b-11ef-b963-057e09d3e358"},"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/149aa1df-8438-446f-984e-535058281dfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"149aa1df-8438-446f-984e-535058281dfe","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F149aa1df-8438-446f-984e-535058281dfe': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F149aa1df-8438-446f-984e-535058281dfe","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"f1c9a67c-be86-4e0e-b6cf-9938c42e98db","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.4286184} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e25d655c-c7fa-49a6-baf7-56ef04b001b1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.429048} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6a0188527e0c372686b2757b4edf3b22","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":"88172d9fab6b42bb810fac0a406a3efd","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/4bf52ec3-d97a-47d5-883b-9bfe490813e4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84d57c90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/149aa1df-8438-446f-984e-535058281dfe"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"149aa1df-8438-446f-984e-535058281dfe","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/149aa1df-8438-446f-984e-535058281dfe 204 64ms","method":"DELETE","requestID":"84d57c90-015b-11ef-b963-057e09d3e358","responseTime":64,"status":204,"url":"/peerconnections/149aa1df-8438-446f-984e-535058281dfe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4bf52ec3-d97a-47d5-883b-9bfe490813e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"626c0912-50c7-4be0-8cd9-e3384f15b646","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.500641} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.860002,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"84e3d470-015b-11ef-b963-057e09d3e358"},"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/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling 200 13ms","method":"POST","requestID":"84e3d470-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc88b8bda-56d4-4ae9-996a-21853714c676': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc88b8bda-56d4-4ae9-996a-21853714c676","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"02a1de8f-d271-4ddc-b6ee-c03f4f8dcfdd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.5092258} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6aabfe21-83ff-4f4f-b5d9-ba151854a806","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.5092602} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b670e48c661122a9cae1923c712723"},"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:39874","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff82807c7-d3bf-40bb-aa2f-f6ac73b35d82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b82d68c-560d-4311-bc23-22ce486f8b37","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.5177696} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.424084,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82","object_type":"device","rebac_allow":false,"scope_allow":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":"84e64570-015b-11ef-b963-057e09d3e358"},"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/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling 200 15ms","method":"POST","requestID":"84e64570-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c88b8bda-56d4-4ae9-996a-21853714c676"} gateway-1 | {"time_local":"23/Apr/2024:10:23:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c88b8bda-56d4-4ae9-996a-21853714c676 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":"e6b670e48c661122a9cae1923c712723"} gateway-1 | {"time_local":"23/Apr/2024:10:23:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2197","request_time":"3.359","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cb421efda32f014c4eba87c85832cea5"} experiment-1 | {"level":"info","message":"DELETE /experiments/c88b8bda-56d4-4ae9-996a-21853714c676 204 203ms","method":"DELETE","requestID":"e6b670e48c661122a9cae1923c712723","responseTime":203,"status":204,"url":"/experiments/c88b8bda-56d4-4ae9-996a-21853714c676"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"6a0188527e0c372686b2757b4edf3b22","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a0188527e0c372686b2757b4edf3b22"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 148ms","method":"POST","requestID":"88172d9fab6b42bb810fac0a406a3efd","responseTime":148,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"88172d9fab6b42bb810fac0a406a3efd"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ccba80f36dc621f004e1913cd1f1e5bf","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:23:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1955","request_time":"1.876","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"12972fc1df5160604022d443eaeb219a"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4bf52ec3-d97a-47d5-883b-9bfe490813e4' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.021229,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867805,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo"} 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":"ccba80f36dc621f004e1913cd1f1e5bf"},"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/f82807c7-d3bf-40bb-aa2f-f6ac73b35d82' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"01f62375-aad6-416e-8b9c-1ab35a6b16c7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6143503} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ccba80f36dc621f004e1913cd1f1e5bf"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"938f4099-c9f0-49ac-b548-04cec783fdcf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6211126} 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":"ccba80f36dc621f004e1913cd1f1e5bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"b756cbf9-df33-473d-9026-afe58ad79362","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.631074} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"922b7cac-a772-4c71-aa6a-c2fcc94c25ac","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6313858} 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":"ccba80f36dc621f004e1913cd1f1e5bf"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.631062554Z"}]},"request_id":"38d16076-417a-4019-be2f-e0d297ba35a5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6365175} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ccba80f36dc621f004e1913cd1f1e5bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ccba80f36dc621f004e1913cd1f1e5bf"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"ccba80f36dc621f004e1913cd1f1e5bf","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"980bc7da98d41da539674f1b7406a4fa","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.7078,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867805,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNX0.ncM4ayIaeGPnSOuIbis5MJV6ZKFzlENO55OHyOwProo"} 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":"980bc7da98d41da539674f1b7406a4fa"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a472fedb-ad9f-49d5-8420-d2f2fce0c6e9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6615849} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"980bc7da98d41da539674f1b7406a4fa"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2ff87f7-166d-4186-a04d-a4d4b18e2d1e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.667664} 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":"980bc7da98d41da539674f1b7406a4fa"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"19c3e7b1-6c91-413e-bfef-cebaa4608f03","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6804347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"626bc22f-a175-40a5-b05e-85eb5d157e9d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6806543} 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":"980bc7da98d41da539674f1b7406a4fa"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.680418836Z"}]},"request_id":"6ff1d09c-5019-4969-a381-f25f572fcb93","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867805.6855998} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"980bc7da98d41da539674f1b7406a4fa"},"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":"980bc7da98d41da539674f1b7406a4fa","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"980bc7da98d41da539674f1b7406a4fa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"61eddc16676395c998459815c9662ded","responseTime":9,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"7d3cac2dfa696866fe64816843e5a7d3","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.784135,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61eddc16676395c998459815c9662ded"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671772,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"7d3cac2dfa696866fe64816843e5a7d3"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.680418836Z"}]},"request_id":"1b7c4b51-4399-4d2c-8380-aa8665f3615a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.179558} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61eddc16676395c998459815c9662ded"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.631062554Z"}]},"request_id":"9ba0bcab-fd2b-44c5-a6ec-505da98b603c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.180582} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7d3cac2dfa696866fe64816843e5a7d3"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08610c08-5933-4d71-bea0-c6e20d7dc317","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.1865277} 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":"61eddc16676395c998459815c9662ded"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee00fc9c-d05e-4c8d-88ba-5b4fdf4960db","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.1893537} 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":"7d3cac2dfa696866fe64816843e5a7d3"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.631062554Z"}]},"request_id":"d7080ae9-b7a3-406e-b251-006673cf5eca","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.195418} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7d3cac2dfa696866fe64816843e5a7d3"},"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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5 200 34ms","method":"PATCH","requestID":"7d3cac2dfa696866fe64816843e5a7d3","responseTime":34,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5 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":"7d3cac2dfa696866fe64816843e5a7d3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"46b848698127b5a2a961eb8485154c3f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.141256,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"46b848698127b5a2a961eb8485154c3f"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.680418836Z"}]},"request_id":"656bd6f4-72c8-4888-9dae-ff59b7e3e035","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.2184892} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61eddc16676395c998459815c9662ded"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.067","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"61eddc16676395c998459815c9662ded"} device-1 | {"level":"info","message":"PATCH /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e 200 56ms","method":"PATCH","requestID":"61eddc16676395c998459815c9662ded","responseTime":56,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d3d437aea9bf27032a8571c3e9a6ab66","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/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":"46b848698127b5a2a961eb8485154c3f"} device-1 | {"level":"info","message":"POST /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/websocket 200 23ms","method":"POST","requestID":"46b848698127b5a2a961eb8485154c3f","responseTime":23,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/websocket"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.773774,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3d437aea9bf27032a8571c3e9a6ab66"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/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":"d3d437aea9bf27032a8571c3e9a6ab66"} device-1 | {"level":"info","message":"POST /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/websocket 200 16ms","method":"POST","requestID":"d3d437aea9bf27032a8571c3e9a6ab66","responseTime":16,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"185a0ccad36ae7355794ecac08dd73df","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.852912,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"185a0ccad36ae7355794ecac08dd73df"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.631062554Z"}]},"request_id":"cf1fcbda-351e-4d09-b114-6340895b638c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.2823591} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"185a0ccad36ae7355794ecac08dd73df"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5? 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":"185a0ccad36ae7355794ecac08dd73df"} device-1 | {"level":"info","message":"GET /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5? 200 21ms","method":"GET","requestID":"185a0ccad36ae7355794ecac08dd73df","responseTime":21,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"357dd8a83ad84356924cc1391632d59a","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.261478,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"357dd8a83ad84356924cc1391632d59a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.680418836Z"}]},"request_id":"2a03a538-3ff7-4642-af36-44707cc562a0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.3132405} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"357dd8a83ad84356924cc1391632d59a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e? 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":"357dd8a83ad84356924cc1391632d59a"} device-1 | {"level":"info","message":"GET /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e? 200 20ms","method":"GET","requestID":"357dd8a83ad84356924cc1391632d59a","responseTime":20,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e7ba73346412acb85e8a3759f40095c8","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:39874","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.203306,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"e7ba73346412acb85e8a3759f40095c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"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:39874","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.130399,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"856b53f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.025312,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"856ba210-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.631062554Z"}]},"request_id":"54876089-f50c-41db-bdee-300aaab35683","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.397368} 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":"856b53f0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.680418836Z"}]},"request_id":"07e8dbc3-ddbc-419e-8330-8a3dcc6f4da8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.3988485} 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":"856ba210-015b-11ef-b963-057e09d3e358"},"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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5? 200 26ms","method":"GET","requestID":"856b53f0-015b-11ef-b963-057e09d3e358","responseTime":26,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e? 200 25ms","method":"GET","requestID":"856ba210-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"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:39874","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.670298,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"857a2100-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.336148,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"857a6f20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.996281,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ccbe5640-6de6-4ddd-b0a4-33df751ee0d0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.497953} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","rebac_allow":false,"scope_allow":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":"857abd40-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.631062554Z"}]},"request_id":"224b0d23-b6d5-48f1-98d3-eca29b3ae60f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5043652} authorization-1 | {"level":"info","message":"POST /relations/query 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"857a2100-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.680418836Z"}]},"request_id":"2702974f-4f98-4a8d-bee2-7296add2bdad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5116196} 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":"857a6f20-015b-11ef-b963-057e09d3e358"},"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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling 200 33ms","method":"POST","requestID":"857abd40-015b-11ef-b963-057e09d3e358","responseTime":33,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3cdaa43-dec3-4bdc-adc8-414e088e5e01#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3cdaa43-dec3-4bdc-adc8-414e088e5e01","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"9e5d9aff-9e0f-4501-8696-60a47cbb0471","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5210907} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2e680222-3dc6-41e5-a354-e647e3d5eb17","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5214837} 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":"e7ba73346412acb85e8a3759f40095c8"},"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:39874","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5? 200 49ms","method":"GET","requestID":"857a2100-015b-11ef-b963-057e09d3e358","responseTime":49,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e? 200 50ms","method":"GET","requestID":"857a6f20-015b-11ef-b963-057e09d3e358","responseTime":50,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0151744-0d49-4927-9034-f513ffa4e67f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5321934} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.297581,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","rebac_allow":false,"scope_allow":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":"8580b0b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.221","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e7ba73346412acb85e8a3759f40095c8"} experiment-1 | {"level":"info","message":"POST /experiments? 201 214ms","method":"POST","requestID":"e7ba73346412acb85e8a3759f40095c8","responseTime":214,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} device-1 | {"level":"info","message":"POST /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling 200 23ms","method":"POST","requestID":"8580b0b0-015b-11ef-b963-057e09d3e358","responseTime":23,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e7036b70-0a4a-46c3-99ab-141273c24e9a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5473864} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.557554,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"78717352d14717172050ff202b1b21bc","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","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 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":"858348c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.857877,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} device-1 | {"level":"info","message":"POST /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling 200 16ms","method":"POST","requestID":"858348c0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"78717352d14717172050ff202b1b21bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.631062554Z"}]},"request_id":"54398c00-45f8-48f6-8860-b0dca2f3b8dd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.562144} 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":"78717352d14717172050ff202b1b21bc"},"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:39874","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2cea254c-181a-4115-b8f2-30fdc2666279","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5665708} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.117467,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5? 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":"78717352d14717172050ff202b1b21bc"} device-1 | {"level":"info","message":"GET /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5? 200 17ms","method":"GET","requestID":"78717352d14717172050ff202b1b21bc","responseTime":17,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","rebac_allow":false,"scope_allow":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":"858607e0-015b-11ef-b963-057e09d3e358"},"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/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling 200 14ms","method":"POST","requestID":"858607e0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"22949dbf-1d5c-4a1f-be2e-9c7a024f4d5d"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"d7690f62-91ce-4fbf-b946-c1023d63655a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"cec60540-c553-490b-ad8d-f0877ce04977"}]},"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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"17a0e95e0d08f60c7c5b7d2667b30687","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.904673,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"8588c700-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.267369,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"17a0e95e0d08f60c7c5b7d2667b30687"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:25.680418836Z"}]},"request_id":"a3ebd000-2301-42a4-bb34-c9812492a862","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5895967} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"17a0e95e0d08f60c7c5b7d2667b30687"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e? 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":"17a0e95e0d08f60c7c5b7d2667b30687"} device-1 | {"level":"info","message":"GET /devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e? 200 16ms","method":"GET","requestID":"17a0e95e0d08f60c7c5b7d2667b30687","responseTime":16,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"88ab5c94-9405-43b0-99e9-e899056e8e6d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5939875} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ba54266-3698-4674-83c8-cf8e70ca0bad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.5942523} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8588c700-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"8588c700-015b-11ef-b963-057e09d3e358","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d8e981a-d50c-4f61-879c-13ac3c460ccc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.670351} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.979312,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"connecting","url":"http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9dee05d25e953ed6e1feba8eafb7f34e","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","rebac_allow":false,"scope_allow":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":"85963480-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"9dee05d25e953ed6e1feba8eafb7f34e","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"9dee05d25e953ed6e1feba8eafb7f34e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling 200 24ms","method":"POST","requestID":"85963480-015b-11ef-b963-057e09d3e358","responseTime":24,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4fcb65c6-1799-4318-a685-3eb30c9eb6a9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.6973412} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.531476,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"859a5330-015b-11ef-b963-057e09d3e358"},"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/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling 200 15ms","method":"POST","requestID":"859a5330-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","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/d878d227-9346-4d96-bb51-f6dd52fb9118' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","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":"4fcaf32cc6a0ed6825afb939181012f8","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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd878d227-9346-4d96-bb51-f6dd52fb9118","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f3aa1bcc-83c0-4733-9b20-106d9b725d4d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.7370193} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.644639,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118","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":"85a094c0-015b-11ef-b963-057e09d3e358"},"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/d878d227-9346-4d96-bb51-f6dd52fb9118 200 11ms","method":"GET","requestID":"85a094c0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"4fcaf32cc6a0ed6825afb939181012f8","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"4fcaf32cc6a0ed6825afb939181012f8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"135201b9-78f0-48fd-9025-ed07e17cf4a2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.7766879} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.194141,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","rebac_allow":false,"scope_allow":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":"85a66120-015b-11ef-b963-057e09d3e358"},"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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling 200 14ms","method":"POST","requestID":"85a66120-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f0a01d4c-3c68-4ccd-bf06-1e667d21424c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.7941074} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.268753,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","rebac_allow":false,"scope_allow":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":"85a92040-015b-11ef-b963-057e09d3e358"},"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/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling 200 13ms","method":"POST","requestID":"85a92040-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"849256c97aeae6abdbb98cb5761b4698","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.250009,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"849256c97aeae6abdbb98cb5761b4698"},"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/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"} gateway-1 | {"time_local":"23/Apr/2024:10:23:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01 HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"849256c97aeae6abdbb98cb5761b4698"} experiment-1 | {"level":"info","message":"GET /experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01 200 19ms","method":"GET","requestID":"849256c97aeae6abdbb98cb5761b4698","responseTime":19,"status":200,"url":"/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ab48e59a992a1bfa28aa28a5cca85992","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.096115,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"ab48e59a992a1bfa28aa28a5cca85992"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.007766,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867806,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwNn0.ZOUTZsQUZ_qTPmkW_KiV6SyjjkxdeM3wu6g9_ghIvto"} 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":"85b46ae0-015b-11ef-b963-057e09d3e358"},"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/d878d227-9346-4d96-bb51-f6dd52fb9118' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd878d227-9346-4d96-bb51-f6dd52fb9118': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd878d227-9346-4d96-bb51-f6dd52fb9118","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"2e0b2d29-259a-400b-8774-cfe33e33510b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.8901532} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a049ec98c54fbad94652863d64388a3b","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6ffaa268-93ea-47c4-8c08-864043126756","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.8908875} 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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118"}}},"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":"85b46ae0-015b-11ef-b963-057e09d3e358"},"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)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cc792ff26a168100cee4e5c80d088a3b","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"d878d227-9346-4d96-bb51-f6dd52fb9118","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/d878d227-9346-4d96-bb51-f6dd52fb9118 204 72ms","method":"DELETE","requestID":"85b46ae0-015b-11ef-b963-057e09d3e358","responseTime":72,"status":204,"url":"/peerconnections/d878d227-9346-4d96-bb51-f6dd52fb9118"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99b994c7-dd35-4e22-8d1c-a0a9f06224e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7609d521-3c5b-412f-9d01-6b96aaedc9f7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.968615} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.768368,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5","object_type":"device","rebac_allow":false,"scope_allow":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":"85c38610-015b-11ef-b963-057e09d3e358"},"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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling 200 17ms","method":"POST","requestID":"85c38610-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/99b994c7-dd35-4e22-8d1c-a0a9f06224e5/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3cdaa43-dec3-4bdc-adc8-414e088e5e01': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb3cdaa43-dec3-4bdc-adc8-414e088e5e01","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"928e950e-5e0d-40a6-a197-ddd7350806d9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.9801867} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"93368474-00c3-4bf4-893a-3be44b8a3fbf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.9805555} 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":"ab48e59a992a1bfa28aa28a5cca85992"},"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:39874","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7b211df2-97d4-4332-b8f1-5e0f5e0b223e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2d5772a1-0260-4fb9-8113-5ef21f1c7b49","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867806.991095} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.957906,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e","object_type":"device","rebac_allow":false,"scope_allow":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":"85c6ba60-015b-11ef-b963-057e09d3e358"},"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/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling 200 18ms","method":"POST","requestID":"85c6ba60-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.218","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ab48e59a992a1bfa28aa28a5cca85992"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1960","request_time":"0.823","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"37b80b54572027908703c270d34b0b2f"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1960","request_time":"0.811","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"eb6e683d06b03c0a1f814ebd64a90042"} experiment-1 | {"level":"info","message":"DELETE /experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01 204 213ms","method":"DELETE","requestID":"ab48e59a992a1bfa28aa28a5cca85992","responseTime":213,"status":204,"url":"/experiments/b3cdaa43-dec3-4bdc-adc8-414e088e5e01"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 167ms","method":"POST","requestID":"a049ec98c54fbad94652863d64388a3b","responseTime":167,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.172","http_referrer":"","http_user_agent":"node-fetch","requestID":"a049ec98c54fbad94652863d64388a3b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9411c9834f17709cd686fb726d4de285","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 164ms","method":"POST","requestID":"cc792ff26a168100cee4e5c80d088a3b","responseTime":164,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch","requestID":"cc792ff26a168100cee4e5c80d088a3b"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7b211df2-97d4-4332-b8f1-5e0f5e0b223e' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.77964,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"9411c9834f17709cd686fb726d4de285"},"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/99b994c7-dd35-4e22-8d1c-a0a9f06224e5' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F360bc105-10f8-4307-b121-f2982bfede3f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6a2bf645-4fed-4854-a3c1-7922ea90f798","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.0864632} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9411c9834f17709cd686fb726d4de285"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c38a5b28-862b-471f-b249-0824020449f4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.0929792} 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":"9411c9834f17709cd686fb726d4de285"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F360bc105-10f8-4307-b121-f2982bfede3f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"35aab9a3-7bc4-445c-b581-2a74e8f83657","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1030166} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"776c1494-7837-4060-93f5-d3807b710a14","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1032894} 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":"9411c9834f17709cd686fb726d4de285"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F360bc105-10f8-4307-b121-f2982bfede3f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F360bc105-10f8-4307-b121-f2982bfede3f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.103003231Z"}]},"request_id":"d6080915-bb13-47fc-a376-502badc132e4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1109107} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9411c9834f17709cd686fb726d4de285"},"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 49ms","method":"POST","requestID":"9411c9834f17709cd686fb726d4de285","responseTime":49,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9411c9834f17709cd686fb726d4de285"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"00498a67568afc9037017ea18daf2589","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.923386,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"00498a67568afc9037017ea18daf2589"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56241f0b-852e-4dd9-b9d0-bd1b760d6f3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"44c23a5a-a63f-40c5-ae90-f51a66c8ee6a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1357772} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00498a67568afc9037017ea18daf2589"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6ec2376a-a635-4ae4-816b-b8a013364d41","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1413147} 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":"00498a67568afc9037017ea18daf2589"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56241f0b-852e-4dd9-b9d0-bd1b760d6f3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"849fd403-c116-47d2-8b1e-90cd424baa2a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1515353} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b6c279b-40ae-4c0a-9621-f544130b328c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1516984} 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":"00498a67568afc9037017ea18daf2589"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56241f0b-852e-4dd9-b9d0-bd1b760d6f3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F56241f0b-852e-4dd9-b9d0-bd1b760d6f3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.151518548Z"}]},"request_id":"2cbf9353-ee94-4280-900b-93bb08473452","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1574268} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00498a67568afc9037017ea18daf2589"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"00498a67568afc9037017ea18daf2589"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"00498a67568afc9037017ea18daf2589","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ee2c5248a47eec1189aa2a81be4f17e0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.745422,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"ee2c5248a47eec1189aa2a81be4f17e0"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93135d36-8096-4790-93e1-18541009b125","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"35dc201b-d7b6-4bef-9121-a6d74047ca7c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1889756} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee2c5248a47eec1189aa2a81be4f17e0"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"37a84cca-0357-4e14-a84e-30eafdd583ad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.1946385} 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":"ee2c5248a47eec1189aa2a81be4f17e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93135d36-8096-4790-93e1-18541009b125","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"4330a1ed-c09a-43ba-8e1e-9e9ff3556027","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2068734} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e58ace63-27c2-431f-9c35-b67c29d8da62","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2071009} 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":"ee2c5248a47eec1189aa2a81be4f17e0"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93135d36-8096-4790-93e1-18541009b125","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93135d36-8096-4790-93e1-18541009b125","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.206855943Z"}]},"request_id":"36222c98-1967-4abb-a5e2-ee25ff0be814","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2130423} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee2c5248a47eec1189aa2a81be4f17e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +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":"ee2c5248a47eec1189aa2a81be4f17e0"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"ee2c5248a47eec1189aa2a81be4f17e0","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"56527f052dc074f54b04c26879cca16c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.908049,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"56527f052dc074f54b04c26879cca16c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff15f33b-2ff2-427a-8e90-c0fe9243b38b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f896b6f4-047b-4df0-a2af-9f900045c28f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2454798} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56527f052dc074f54b04c26879cca16c"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d310566-7a96-4660-ac47-ec805b64c500","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2517002} 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":"56527f052dc074f54b04c26879cca16c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff15f33b-2ff2-427a-8e90-c0fe9243b38b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"be6d2d54-22e1-4248-9923-5e7d24f6ed84","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2638814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd1b61a8-8435-417e-8662-d1a7c3276146","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2650304} 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":"56527f052dc074f54b04c26879cca16c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff15f33b-2ff2-427a-8e90-c0fe9243b38b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff15f33b-2ff2-427a-8e90-c0fe9243b38b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.263865882Z"}]},"request_id":"340fc98e-73f5-46c9-a87e-08b931b60396","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.2724757} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56527f052dc074f54b04c26879cca16c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"56527f052dc074f54b04c26879cca16c","responseTime":53,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +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":"56527f052dc074f54b04c26879cca16c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2e745246fcc5e4623c59b247d6d1dc36","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.134806,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"2e745246fcc5e4623c59b247d6d1dc36"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29b15e40-a62a-4845-86a2-50b0e874db00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"35ade6ee-ce8d-41dd-baa4-983702628503","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3095403} 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":"2e745246fcc5e4623c59b247d6d1dc36"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9493fd40-061c-44b9-9538-d55c8dc94c77","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3180227} 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":"2e745246fcc5e4623c59b247d6d1dc36"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29b15e40-a62a-4845-86a2-50b0e874db00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"38139eb9-c599-48f0-83f9-9c2c9c2117f3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.332755} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1b665ba-94a4-4b4b-9655-d5b301cd3882","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3331738} 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":"2e745246fcc5e4623c59b247d6d1dc36"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29b15e40-a62a-4845-86a2-50b0e874db00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29b15e40-a62a-4845-86a2-50b0e874db00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.332734967Z"}]},"request_id":"837571b2-e6a8-481d-9ab6-a972a4a93dbf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3413959} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"2e745246fcc5e4623c59b247d6d1dc36","responseTime":63,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.067","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e745246fcc5e4623c59b247d6d1dc36"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e745246fcc5e4623c59b247d6d1dc36"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d6021bc73330605ae71d3e0093e29c03","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.820441,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"d6021bc73330605ae71d3e0093e29c03"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F363063ba-ccd6-4b21-bb52-e7b1db97262d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"db5c2afc-8ffb-49bf-97a2-c4f1a674eb1c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3721166} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d6021bc73330605ae71d3e0093e29c03"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"22e5016d-5e93-4f53-8c2c-5975015862fe","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3774154} 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":"d6021bc73330605ae71d3e0093e29c03"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F363063ba-ccd6-4b21-bb52-e7b1db97262d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"643e6026-911a-48c1-9a3a-afac06d911a6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3863013} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8db85ef6-5d9c-4bcd-8fde-fd2aa15e233b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3864884} 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":"d6021bc73330605ae71d3e0093e29c03"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F363063ba-ccd6-4b21-bb52-e7b1db97262d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F363063ba-ccd6-4b21-bb52-e7b1db97262d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.386288506Z"}]},"request_id":"9b4b94dc-e2ed-4276-8ed1-ebef3c08ea67","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.3901303} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d6021bc73330605ae71d3e0093e29c03"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d6021bc73330605ae71d3e0093e29c03"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"d6021bc73330605ae71d3e0093e29c03","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b8d3547e5c4f0a81176d0cd13e1e7a43","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.830164,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"b8d3547e5c4f0a81176d0cd13e1e7a43"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1cf8397d-f9f1-45e1-a9eb-ec614ccc5f85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"28c82f8e-3201-47b3-b49b-6965a7a09a99","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.4112656} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b8d3547e5c4f0a81176d0cd13e1e7a43"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34955599-3c2a-4e80-be44-e0be92893e46","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.4155397} 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":"b8d3547e5c4f0a81176d0cd13e1e7a43"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1cf8397d-f9f1-45e1-a9eb-ec614ccc5f85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"17ef81ff-4a0c-432e-8942-d0e1e4fe9f61","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.429652} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f8bbe855-172a-4dd2-94e5-efb7639f04f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.4298873} 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":"b8d3547e5c4f0a81176d0cd13e1e7a43"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1cf8397d-f9f1-45e1-a9eb-ec614ccc5f85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1cf8397d-f9f1-45e1-a9eb-ec614ccc5f85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.429638642Z"}]},"request_id":"4ddbc6eb-c940-40fe-811b-05eff1621f09","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.43386} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b8d3547e5c4f0a81176d0cd13e1e7a43"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b8d3547e5c4f0a81176d0cd13e1e7a43"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"b8d3547e5c4f0a81176d0cd13e1e7a43","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"79b75a84b8f538c826869beecf5b4118","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.644393,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"79b75a84b8f538c826869beecf5b4118"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e0ceeb6-182f-4288-8b93-48a5f44bbc09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"907e5393-6a53-4429-ad69-c254693dfcaa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.4613707} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79b75a84b8f538c826869beecf5b4118"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ad221ac-0002-4eaa-a695-183fdf750b66","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.4670918} 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":"79b75a84b8f538c826869beecf5b4118"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e0ceeb6-182f-4288-8b93-48a5f44bbc09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"6aa0c550-ac56-4419-b10e-846ebea027d7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.477204} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf3535fa-13b1-43a6-897f-29e01fd39431","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.477367} 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":"79b75a84b8f538c826869beecf5b4118"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e0ceeb6-182f-4288-8b93-48a5f44bbc09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e0ceeb6-182f-4288-8b93-48a5f44bbc09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.477163868Z"}]},"request_id":"d4f76ae2-d33f-4038-a9ed-33406da2e37a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.483737} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79b75a84b8f538c826869beecf5b4118"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +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":"79b75a84b8f538c826869beecf5b4118"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"79b75a84b8f538c826869beecf5b4118","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"59ac40989881b35f4dd9c46f5e308ef9","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.499255,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"59ac40989881b35f4dd9c46f5e308ef9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02b3db53-fee9-483a-a5a4-7dbf0670fab7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7e86ec45-fcf7-4e45-9abd-aadd76e85524","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5170214} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59ac40989881b35f4dd9c46f5e308ef9"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c5af338-bee0-40f4-9406-c3d287bb5aca","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5239494} 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":"59ac40989881b35f4dd9c46f5e308ef9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02b3db53-fee9-483a-a5a4-7dbf0670fab7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"78e0e228-255e-4e5a-80b4-b454f1fa4950","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5357254} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1990b3de-7008-47f3-89c6-eaf545ab4cff","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5359454} 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":"59ac40989881b35f4dd9c46f5e308ef9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02b3db53-fee9-483a-a5a4-7dbf0670fab7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02b3db53-fee9-483a-a5a4-7dbf0670fab7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.535694833Z"}]},"request_id":"1c5b9e82-dbb4-417e-85c5-476e067bf8d7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5418668} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59ac40989881b35f4dd9c46f5e308ef9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59ac40989881b35f4dd9c46f5e308ef9"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"59ac40989881b35f4dd9c46f5e308ef9","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f8429221fd27af3bbcd5aaa75c7cb595","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.131265,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"f8429221fd27af3bbcd5aaa75c7cb595"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc9e0f69b-bbc3-4112-9e69-9259046e3d68","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3bfcefbc-7d82-4948-9599-f3851b278c97","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5744543} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8429221fd27af3bbcd5aaa75c7cb595"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"802ee31f-b459-468b-96d2-c4c0349f6aba","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5803332} 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":"f8429221fd27af3bbcd5aaa75c7cb595"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc9e0f69b-bbc3-4112-9e69-9259046e3d68","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"7377ab14-1473-4231-ae5d-e81087939a58","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5929918} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ec20883-76e7-48e2-86a7-132f7ae4fd75","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.5931056} 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":"f8429221fd27af3bbcd5aaa75c7cb595"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc9e0f69b-bbc3-4112-9e69-9259046e3d68","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc9e0f69b-bbc3-4112-9e69-9259046e3d68","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.592963895Z"}]},"request_id":"0724046b-3ac0-4804-8d55-f294c8c9eb46","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.6001263} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8429221fd27af3bbcd5aaa75c7cb595"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +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":"f8429221fd27af3bbcd5aaa75c7cb595"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"f8429221fd27af3bbcd5aaa75c7cb595","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"acef376af9a76d61d6113c1f8395fd4a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.342339,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"acef376af9a76d61d6113c1f8395fd4a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d0cd16b4-acb3-4ec3-9457-81a627660b77","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.6425347} 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":"acef376af9a76d61d6113c1f8395fd4a"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78575625-d5fc-4663-8bdb-5db6c246b65f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.652344} 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":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"acef376af9a76d61d6113c1f8395fd4a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"0f2cd6e7-7b95-4483-8fe1-a5b873ee694c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.6631472} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"55d3861c-4dd6-41a4-af8f-28e7ab64c231","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.6636155} 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":"acef376af9a76d61d6113c1f8395fd4a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.663124841Z"}]},"request_id":"969d5d52-6ebe-421c-93f2-831f4811f1fa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.6702538} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"acef376af9a76d61d6113c1f8395fd4a"},"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 62ms","method":"POST","requestID":"acef376af9a76d61d6113c1f8395fd4a","responseTime":62,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.068","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"acef376af9a76d61d6113c1f8395fd4a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"be7e20146cade0f7bad485ae8f6d2403","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.3265,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"be7e20146cade0f7bad485ae8f6d2403"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"93fe1866-6ba9-495b-bb83-ff7f8d776145","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7104883} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"be7e20146cade0f7bad485ae8f6d2403"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f173fdf0-d5fa-455b-abfa-1fcbfe667446","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7205675} 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":"be7e20146cade0f7bad485ae8f6d2403"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"f6d39441-8d6a-45f7-b865-fe11e8978639","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.733491} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8bcf6637-59bd-4b6b-b881-c1f5366a29e5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7336621} 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":"be7e20146cade0f7bad485ae8f6d2403"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.733476165Z"}]},"request_id":"7c7b1e44-42a8-46d2-b3e5-1633b8b0654d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7396886} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"be7e20146cade0f7bad485ae8f6d2403"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +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":"be7e20146cade0f7bad485ae8f6d2403"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"be7e20146cade0f7bad485ae8f6d2403","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"40be565501d8a58d7d25a40fe94e4a5a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.261065,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"40be565501d8a58d7d25a40fe94e4a5a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d7a39fdb-d658-4cb3-9071-49cfc2539bfb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7743993} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40be565501d8a58d7d25a40fe94e4a5a"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b41174f5-b1c1-4933-ad18-b6c9d41e56b4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7825103} 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":"40be565501d8a58d7d25a40fe94e4a5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"f88897d3-b6b3-4fc3-b041-5af129f8c70b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7933407} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ebb1df46-34d3-4428-a4d3-412b7aca6001","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.7934594} 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":"40be565501d8a58d7d25a40fe94e4a5a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.793327393Z"}]},"request_id":"e22d7a44-dcd2-46bc-bc90-cded4c6e2a1e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.8004224} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40be565501d8a58d7d25a40fe94e4a5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"40be565501d8a58d7d25a40fe94e4a5a"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"40be565501d8a58d7d25a40fe94e4a5a","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ef583783f3f399244fdccdf011dd05b5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.214168,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef583783f3f399244fdccdf011dd05b5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.663124841Z"}]},"request_id":"35c43402-3804-43c4-a49c-540094003605","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.8360765} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef583783f3f399244fdccdf011dd05b5"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c5e3757d-bbcb-4689-8d4f-d3af2fa66839","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.8442845} 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":"ef583783f3f399244fdccdf011dd05b5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.663124841Z"}]},"request_id":"1d94365f-3f1d-40c2-b453-6b7fe6a68b75","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.8682022} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef583783f3f399244fdccdf011dd05b5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef583783f3f399244fdccdf011dd05b5"} device-1 | {"level":"info","message":"PATCH /devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b? 200 55ms","method":"PATCH","requestID":"ef583783f3f399244fdccdf011dd05b5","responseTime":55,"status":200,"url":"/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3e7a65ece82fc39fd781ae2bd0dd35a5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.156644,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e7a65ece82fc39fd781ae2bd0dd35a5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.733476165Z"}]},"request_id":"f1f44b0b-6311-4400-9d6a-28e32879c79f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.8978145} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e7a65ece82fc39fd781ae2bd0dd35a5"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40d02926-6933-4108-b331-f63be8ef1cc4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.9063642} 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":"3e7a65ece82fc39fd781ae2bd0dd35a5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.733476165Z"}]},"request_id":"966c43c0-7ee7-449d-a975-e0108955d035","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.921941} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e7a65ece82fc39fd781ae2bd0dd35a5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e7a65ece82fc39fd781ae2bd0dd35a5"} device-1 | {"level":"info","message":"PATCH /devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b? 200 44ms","method":"PATCH","requestID":"3e7a65ece82fc39fd781ae2bd0dd35a5","responseTime":44,"status":200,"url":"/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"799d8b456ad764b5fc90da26764e4603","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.684832,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"799d8b456ad764b5fc90da26764e4603"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.793327393Z"}]},"request_id":"98efa1a6-05ae-4c9c-8290-1b449c3bb6b9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.9523592} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"799d8b456ad764b5fc90da26764e4603"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"43a2f63d-1009-4a57-861c-8cf4956ab47d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.9606373} 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":"799d8b456ad764b5fc90da26764e4603"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.793327393Z"}]},"request_id":"3aa03664-b0e8-4d5b-9e88-70476f67b989","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.9703617} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"799d8b456ad764b5fc90da26764e4603"},"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/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f? 200 39ms","method":"PATCH","requestID":"799d8b456ad764b5fc90da26764e4603","responseTime":39,"status":200,"url":"/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"799d8b456ad764b5fc90da26764e4603"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"173befa823da47a98b1b734ba4a61377","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.205606,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"173befa823da47a98b1b734ba4a61377"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0b340ab-0f7d-47d7-bb57-7dba988d677b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.663124841Z"}]},"request_id":"55bd30c7-24a6-4945-bedd-81047e69beee","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867807.992693} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"173befa823da47a98b1b734ba4a61377"},"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:39874","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.00765,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.096525,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.988795,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/360bc105-10f8-4307-b121-f2982bfede3f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/360bc105-10f8-4307-b121-f2982bfede3f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"173befa823da47a98b1b734ba4a61377"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/56241f0b-852e-4dd9-b9d0-bd1b760d6f3c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/56241f0b-852e-4dd9-b9d0-bd1b760d6f3c","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"173befa823da47a98b1b734ba4a61377"},"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/93135d36-8096-4790-93e1-18541009b125","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/93135d36-8096-4790-93e1-18541009b125","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"173befa823da47a98b1b734ba4a61377"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:57874","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57874","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.148615,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867807,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwN30.fhhaccPHGAmfoXqQnSz9FIZuzYgevGZ7xt7V7bWrgq4"} 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":"173befa823da47a98b1b734ba4a61377"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"173befa823da47a98b1b734ba4a61377"} device-1 | {"level":"info","message":"GET /devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b? 200 45ms","method":"GET","requestID":"173befa823da47a98b1b734ba4a61377","responseTime":45,"status":200,"url":"/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9a8ce570a0ac96a1bce2946163afc67e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644161,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"9a8ce570a0ac96a1bce2946163afc67e"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa0f5478e-41dd-4e9a-83fe-eafd3fa9e52b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.733476165Z"}]},"request_id":"738a52ab-0128-49c3-97a1-ec50bd983a8a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.0465662} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9a8ce570a0ac96a1bce2946163afc67e"},"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:39874","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.923916,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.849878,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.745269,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57874","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57874","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714803,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff15f33b-2ff2-427a-8e90-c0fe9243b38b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ff15f33b-2ff2-427a-8e90-c0fe9243b38b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"9a8ce570a0ac96a1bce2946163afc67e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29b15e40-a62a-4845-86a2-50b0e874db00","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/29b15e40-a62a-4845-86a2-50b0e874db00","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"9a8ce570a0ac96a1bce2946163afc67e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/363063ba-ccd6-4b21-bb52-e7b1db97262d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/363063ba-ccd6-4b21-bb52-e7b1db97262d","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"9a8ce570a0ac96a1bce2946163afc67e"},"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/1cf8397d-f9f1-45e1-a9eb-ec614ccc5f85","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/1cf8397d-f9f1-45e1-a9eb-ec614ccc5f85","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"9a8ce570a0ac96a1bce2946163afc67e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:57880","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57880","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.202343,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57892","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"9a8ce570a0ac96a1bce2946163afc67e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"client_addr":"127.0.0.1:57892","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.05219,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"9a8ce570a0ac96a1bce2946163afc67e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b? 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":"9a8ce570a0ac96a1bce2946163afc67e"} device-1 | {"level":"info","message":"GET /devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b? 200 41ms","method":"GET","requestID":"9a8ce570a0ac96a1bce2946163afc67e","responseTime":41,"status":200,"url":"/devices/a0f5478e-41dd-4e9a-83fe-eafd3fa9e52b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"30cb94d2a9997cc357c9f19aa04fc354","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.6598,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30cb94d2a9997cc357c9f19aa04fc354"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:27.793327393Z"}]},"request_id":"cd7574aa-9bd6-4097-a2e8-3fb1a7654f83","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.0931811} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30cb94d2a9997cc357c9f19aa04fc354"},"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:39874","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650966,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.836681,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57858","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.531494,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e0ceeb6-182f-4288-8b93-48a5f44bbc09","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4e0ceeb6-182f-4288-8b93-48a5f44bbc09","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30cb94d2a9997cc357c9f19aa04fc354"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02b3db53-fee9-483a-a5a4-7dbf0670fab7","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/02b3db53-fee9-483a-a5a4-7dbf0670fab7","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30cb94d2a9997cc357c9f19aa04fc354"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c9e0f69b-bbc3-4112-9e69-9259046e3d68","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/c9e0f69b-bbc3-4112-9e69-9259046e3d68","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"30cb94d2a9997cc357c9f19aa04fc354"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57874","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57874","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.771394,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/d0b340ab-0f7d-47d7-bb57-7dba988d677b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"30cb94d2a9997cc357c9f19aa04fc354"},"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":"23/Apr/2024:10:23:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"30cb94d2a9997cc357c9f19aa04fc354"} device-1 | {"level":"info","message":"GET /devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f? 200 27ms","method":"GET","requestID":"30cb94d2a9997cc357c9f19aa04fc354","responseTime":27,"status":200,"url":"/devices/5df7224f-ea70-4c0c-87d0-4f10f3c3cb6f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2d1c880810f0b12c0049733807ba4751","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.705678,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"2d1c880810f0b12c0049733807ba4751"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9b72e88e-f384-428a-9319-7d239bf37e18","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.1564121} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d1c880810f0b12c0049733807ba4751"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0a817dd-7d35-4f72-8988-e4d5450e79ea","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.1622567} 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":"2d1c880810f0b12c0049733807ba4751"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"78a9275f-2af4-4e96-942d-fa8430d70b7c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.17403} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"610a1700-1250-45d7-9ead-9d32f4b758d9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.1743577} 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":"2d1c880810f0b12c0049733807ba4751"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.174006895Z"}]},"request_id":"d11f8cfd-9584-42db-8188-4bae5a0cb0df","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.1800046} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d1c880810f0b12c0049733807ba4751"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.070","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d1c880810f0b12c0049733807ba4751"} device-1 | {"level":"info","message":"POST /devices? 201 64ms","method":"POST","requestID":"2d1c880810f0b12c0049733807ba4751","responseTime":64,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fe9f13010082226ef268019eb2094839","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.140933,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"fe9f13010082226ef268019eb2094839"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcbaa368f-cf76-4d57-8686-63b168626d83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"71546d70-5147-4459-8ab7-c51e42ecff58","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.214235} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe9f13010082226ef268019eb2094839"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8df0982b-b370-49ae-bd3f-61dff0f8c8eb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.2223308} 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":"fe9f13010082226ef268019eb2094839"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcbaa368f-cf76-4d57-8686-63b168626d83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"88d18dfc-26ca-47fa-8dda-fc636ef8855b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.2357154} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7526585e-6da6-42bf-a9d4-ac446140e406","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.2360919} 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":"fe9f13010082226ef268019eb2094839"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcbaa368f-cf76-4d57-8686-63b168626d83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcbaa368f-cf76-4d57-8686-63b168626d83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.235689592Z"}]},"request_id":"28e8239c-4ec3-4534-86a1-38a46551a20f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.242847} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fe9f13010082226ef268019eb2094839"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fe9f13010082226ef268019eb2094839"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"fe9f13010082226ef268019eb2094839","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5c5bb890b9081f260ddfc5726356f2a9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.297382,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867808,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgwOH0.2VjVKT6icYG1s-KAx-l25fsahY5Dcg4MNvTOqJa-Cww"} 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":"5c5bb890b9081f260ddfc5726356f2a9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4bb35356-1c02-45e3-97f9-09c5b0b0adc1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.278375} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5c5bb890b9081f260ddfc5726356f2a9"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ede7ce3c-3164-4a89-99b7-10a0e08a1965","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.2861996} 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":"5c5bb890b9081f260ddfc5726356f2a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"6c1df50e-8105-4f41-9227-ca7909215fa3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.2992508} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3610697e-d216-4e3b-8a0e-e155d1413cbb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.2994218} 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":"5c5bb890b9081f260ddfc5726356f2a9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.299223934Z"}]},"request_id":"60f87c9f-7af9-4319-b56b-29fd8e9d7493","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867808.3075674} 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":"5c5bb890b9081f260ddfc5726356f2a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5c5bb890b9081f260ddfc5726356f2a9"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"5c5bb890b9081f260ddfc5726356f2a9","responseTime":55,"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":"b38e5af4e525bc5e559bdde4049b9f33","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/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":"b38e5af4e525bc5e559bdde4049b9f33"} device-1 | {"level":"info","message":"OPTIONS /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/websocket 200 1ms","method":"OPTIONS","requestID":"b38e5af4e525bc5e559bdde4049b9f33","responseTime":1,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bc649bb7df041813d3d00d2783c1a6c6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674579,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc649bb7df041813d3d00d2783c1a6c6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2cfd871cf97dc0e94b9dea5ec41f6235","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/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":"2cfd871cf97dc0e94b9dea5ec41f6235"} device-1 | {"level":"info","message":"OPTIONS /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/websocket 200 1ms","method":"OPTIONS","requestID":"2cfd871cf97dc0e94b9dea5ec41f6235","responseTime":1,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e428791ba32a803468e63d6290a532b1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.997434,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"e428791ba32a803468e63d6290a532b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/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":"bc649bb7df041813d3d00d2783c1a6c6"} device-1 | {"level":"info","message":"POST /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/websocket 200 34ms","method":"POST","requestID":"bc649bb7df041813d3d00d2783c1a6c6","responseTime":34,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/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":"e428791ba32a803468e63d6290a532b1"} device-1 | {"level":"info","message":"POST /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/websocket 200 30ms","method":"POST","requestID":"e428791ba32a803468e63d6290a532b1","responseTime":30,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a8d323a2da57ddb07f0229a221ff37ba","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.316015,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"a8d323a2da57ddb07f0229a221ff37ba"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.299223934Z"}]},"request_id":"7e7a216f-b12c-4e03-b039-34ec9e7db79e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.3127751} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a8d323a2da57ddb07f0229a221ff37ba"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1? 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":"a8d323a2da57ddb07f0229a221ff37ba"} device-1 | {"level":"info","message":"GET /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1? 200 13ms","method":"GET","requestID":"a8d323a2da57ddb07f0229a221ff37ba","responseTime":13,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bdd4841c61bee55f2bc038465975c41a","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:39874","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.731397,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"bdd4841c61bee55f2bc038465975c41a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"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:39874","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.156211,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cbaa368f-cf76-4d57-8686-63b168626d83","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cbaa368f-cf76-4d57-8686-63b168626d83","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"87cf3490-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.206054,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"87cfa9c0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcbaa368f-cf76-4d57-8686-63b168626d83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcbaa368f-cf76-4d57-8686-63b168626d83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.235689592Z"}]},"request_id":"8fecab5c-fa52-4b6e-be8f-091f909f0a81","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.4086761} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"87cf3490-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.299223934Z"}]},"request_id":"057aa402-2e6a-4790-8583-8d3828f2728b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.4102242} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"87cfa9c0-015b-11ef-b963-057e09d3e358"},"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/b510e1a5-02d9-43d7-bd89-14bcc16641f1? 200 24ms","method":"GET","requestID":"87cfa9c0-015b-11ef-b963-057e09d3e358","responseTime":24,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.183743,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"87cf3490-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cbaa368f-cf76-4d57-8686-63b168626d83? 200 34ms","method":"GET","requestID":"87cf3490-015b-11ef-b963-057e09d3e358","responseTime":34,"status":200,"url":"/devices/cbaa368f-cf76-4d57-8686-63b168626d83?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"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:39874","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.354941,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"87ddb380-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":3.119485,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"87de28b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.475293,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7dbc987-3382-4b73-adc9-f0529594ec72","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5061085} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","rebac_allow":false,"scope_allow":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":"87dec4f0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.174006895Z"}]},"request_id":"d061ac82-3179-4a1c-8bab-70ad96ff35a4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5110521} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling 200 22ms","method":"POST","requestID":"87dec4f0-015b-11ef-b963-057e09d3e358","responseTime":22,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"87ddb380-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.299223934Z"}]},"request_id":"2afd18f7-bff4-4290-ae84-de6822322e04","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5191774} 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":"87de28b0-015b-11ef-b963-057e09d3e358"},"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":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bb58762-6ac4-4306-b7a3-96d0b9e89467#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bb58762-6ac4-4306-b7a3-96d0b9e89467","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"4a5d1097-35d4-4ce3-9bac-5c9541b839cc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5234432} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"883511b4-b6ee-48d7-9670-1ca5a8043767","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5238276} 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":"bdd4841c61bee55f2bc038465975c41a"},"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:39874","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7004bb57-9cd0-4e21-bd73-e228b5e08efa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5312998} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.701364,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} device-1 | {"level":"info","message":"GET /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952? 200 45ms","method":"GET","requestID":"87ddb380-015b-11ef-b963-057e09d3e358","responseTime":45,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"GET /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1? 200 43ms","method":"GET","requestID":"87de28b0-015b-11ef-b963-057e09d3e358","responseTime":43,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1?"} 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":"87e331c0-015b-11ef-b963-057e09d3e358"},"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/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling 200 15ms","method":"POST","requestID":"87e331c0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"POST /experiments? 201 217ms","method":"POST","requestID":"bdd4841c61bee55f2bc038465975c41a","responseTime":217,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.222","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bdd4841c61bee55f2bc038465975c41a"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f64a384f-82ff-4902-9c03-899fb983cd20","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5456517} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.473107,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f379dc573c6427c54fb45963b00728f1","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","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 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":"87e57bb0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.065797,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} device-1 | {"level":"info","message":"POST /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling 200 14ms","method":"POST","requestID":"87e57bb0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f379dc573c6427c54fb45963b00728f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.174006895Z"}]},"request_id":"5f25151d-67d8-40a7-95f8-06d5ff731ea3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.558443} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f379dc573c6427c54fb45963b00728f1"},"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:39874","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bb5d293e-2ab4-47ba-8a7b-ef909f3aa134","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5619433} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.14942,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"87e813c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952? 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":"f379dc573c6427c54fb45963b00728f1"} device-1 | {"level":"info","message":"GET /devices/a2fa5ed0-6467-4d23-94a9-892f81f17952? 200 19ms","method":"GET","requestID":"f379dc573c6427c54fb45963b00728f1","responseTime":19,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling 200 14ms","method":"POST","requestID":"87e813c0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"e4dc336f-fb1b-462d-9b17-7fa9cc428eaa"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"ea0589fb-228d-4e36-baa7-2d4de4881bfe"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"02e20291-4a98-47b3-b4fc-1fce833e934e"}]},"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/b510e1a5-02d9-43d7-bd89-14bcc16641f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d4d4dd9d6f6d34f3e59afe701e2f13de","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.823023,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"87ead2e0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.835206,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"d4d4dd9d6f6d34f3e59afe701e2f13de"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:28.299223934Z"}]},"request_id":"56532865-b6ed-4685-9ffc-990adfa6b5d7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5887992} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4d4dd9d6f6d34f3e59afe701e2f13de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1? 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":"d4d4dd9d6f6d34f3e59afe701e2f13de"} device-1 | {"level":"info","message":"GET /devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1? 200 17ms","method":"GET","requestID":"d4d4dd9d6f6d34f3e59afe701e2f13de","responseTime":17,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"8a142c7d-9015-4d9b-8000-29d9a7c8b40b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.5934603} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c673bf4e-7371-4b34-ad45-706ff3f5d8aa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.593895} 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":"87ead2e0-015b-11ef-b963-057e09d3e358"},"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/c0ded612-1136-4b31-b9a0-02d1618a9e8c'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 52ms","method":"POST","requestID":"87ead2e0-015b-11ef-b963-057e09d3e358","responseTime":52,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"96f9aeff-3c42-46f4-9686-cc3cadb375e3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.663439} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.466127,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"87f7a420-015b-11ef-b963-057e09d3e358"},"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/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling 200 12ms","method":"POST","requestID":"87f7a420-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a217d11b-cd8d-485d-a8a8-19b50cbbc7f8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.6861687} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.068951,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","rebac_allow":false,"scope_allow":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":"87fb4da0-015b-11ef-b963-057e09d3e358"},"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/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling 200 8ms","method":"POST","requestID":"87fb4da0-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c0ded612-1136-4b31-b9a0-02d1618a9e8c","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":"c18452b02dd560829c7db7dbbede5e9c","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/b510e1a5-02d9-43d7-bd89-14bcc16641f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"c18452b02dd560829c7db7dbbede5e9c","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"c18452b02dd560829c7db7dbbede5e9c"} device-1 | {"data":{"peerconnection":"c0ded612-1136-4b31-b9a0-02d1618a9e8c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"c0ded612-1136-4b31-b9a0-02d1618a9e8c","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/c0ded612-1136-4b31-b9a0-02d1618a9e8c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c0ded612-1136-4b31-b9a0-02d1618a9e8c","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":"f0aacc5dc2c4648e3eba06c593eb93c0","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/b510e1a5-02d9-43d7-bd89-14bcc16641f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc0ded612-1136-4b31-b9a0-02d1618a9e8c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06655825-e935-444a-8038-c8b2df7b36d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.8986306} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.634104,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c","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":"881b58c0-015b-11ef-b963-057e09d3e358"},"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/c0ded612-1136-4b31-b9a0-02d1618a9e8c 200 13ms","method":"GET","requestID":"881b58c0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"f0aacc5dc2c4648e3eba06c593eb93c0","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"f0aacc5dc2c4648e3eba06c593eb93c0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e323c166-d215-4c92-9847-97001e1ded95","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.934113} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.102695,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","rebac_allow":false,"scope_allow":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":"8820aff0-015b-11ef-b963-057e09d3e358"},"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/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling 200 14ms","method":"POST","requestID":"8820aff0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d3199cc-3edf-4e82-a00d-743b7148edf8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867810.9500217} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.000972,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","rebac_allow":false,"scope_allow":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":"882320f0-015b-11ef-b963-057e09d3e358"},"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/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling 200 13ms","method":"POST","requestID":"882320f0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"20af8aa43f24452f6c0a0580fe91072f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.771495,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"20af8aa43f24452f6c0a0580fe91072f"},"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/3bb58762-6ac4-4306-b7a3-96d0b9e89467"} gateway-1 | {"time_local":"23/Apr/2024:10:23:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"20af8aa43f24452f6c0a0580fe91072f"} experiment-1 | {"level":"info","message":"GET /experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467 200 14ms","method":"GET","requestID":"20af8aa43f24452f6c0a0580fe91072f","responseTime":14,"status":200,"url":"/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5c43704181060786706a9cfb787cc172","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.263731,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"5c43704181060786706a9cfb787cc172"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.176128,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867810,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMH0.fvegCxaSTgeGCOXh17Djou6H6hvWn3E-PNr4Eyj8Ero"} 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":"882d5a20-015b-11ef-b963-057e09d3e358"},"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/c0ded612-1136-4b31-b9a0-02d1618a9e8c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c0ded612-1136-4b31-b9a0-02d1618a9e8c","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":"15cc8a0487ba3b1f991827f4eda10756","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc0ded612-1136-4b31-b9a0-02d1618a9e8c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc0ded612-1136-4b31-b9a0-02d1618a9e8c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"44d6c985-3d87-41af-bcf6-502b0212f34b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.0376334} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/b510e1a5-02d9-43d7-bd89-14bcc16641f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3f76080a8461e2f051117ad48572fbe2","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d776842-af9d-43cf-92f0-14cf05b6e2aa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.0381901} 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/b510e1a5-02d9-43d7-bd89-14bcc16641f1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c"}}},"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":"882d5a20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"c0ded612-1136-4b31-b9a0-02d1618a9e8c","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/c0ded612-1136-4b31-b9a0-02d1618a9e8c 204 66ms","method":"DELETE","requestID":"882d5a20-015b-11ef-b963-057e09d3e358","responseTime":66,"status":204,"url":"/peerconnections/c0ded612-1136-4b31-b9a0-02d1618a9e8c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb510e1a5-02d9-43d7-bd89-14bcc16641f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a2672494-abd0-4678-8a1e-1c344c9f9d4f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.1059377} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.240907,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1","object_type":"device","rebac_allow":false,"scope_allow":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":"883ac7a0-015b-11ef-b963-057e09d3e358"},"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/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling 200 16ms","method":"POST","requestID":"883ac7a0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/b510e1a5-02d9-43d7-bd89-14bcc16641f1/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bb58762-6ac4-4306-b7a3-96d0b9e89467': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bb58762-6ac4-4306-b7a3-96d0b9e89467","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"c3e69e3f-4d3b-4d3b-b563-b828faf2253c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.1187372} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"98069b15-8a55-45c5-a556-8460c87cda0b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.1190944} 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":"5c43704181060786706a9cfb787cc172"},"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:39874","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2fa5ed0-6467-4d23-94a9-892f81f17952","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7272d4a8-7fa7-4c52-bc35-a2fbc5ae01d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.1273131} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.672023,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952","object_type":"device","rebac_allow":false,"scope_allow":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":"883dd4e0-015b-11ef-b963-057e09d3e358"},"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/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling 200 17ms","method":"POST","requestID":"883dd4e0-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/a2fa5ed0-6467-4d23-94a9-892f81f17952/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5c43704181060786706a9cfb787cc172"} experiment-1 | {"level":"info","message":"DELETE /experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467 204 194ms","method":"DELETE","requestID":"5c43704181060786706a9cfb787cc172","responseTime":194,"status":204,"url":"/experiments/3bb58762-6ac4-4306-b7a3-96d0b9e89467"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"15cc8a0487ba3b1f991827f4eda10756","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"15cc8a0487ba3b1f991827f4eda10756"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"3f76080a8461e2f051117ad48572fbe2","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"3f76080a8461e2f051117ad48572fbe2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2060","request_time":"0.917","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"65cb095009a86c5a899df6770f230f4c"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"86e892cfbc22842a97fad854137a1d2c","responseTime":7,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"0.931","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e9a5727ffa5a060bfb7513203acd9afd"} 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/b510e1a5-02d9-43d7-bd89-14bcc16641f1' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.918406,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867811,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis"} 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":"86e892cfbc22842a97fad854137a1d2c"},"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/a2fa5ed0-6467-4d23-94a9-892f81f17952' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"51083678-095f-44b9-bdb9-70de726132fa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.22711} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86e892cfbc22842a97fad854137a1d2c"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25970dd0-9f16-4c63-8d8d-7e4cb35b7244","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.232291} 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":"86e892cfbc22842a97fad854137a1d2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"a84b9647-86e6-4715-9481-c8bb95b92c01","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.2435427} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"470735c1-9b42-4339-abbe-874099787ae2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.243686} 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":"86e892cfbc22842a97fad854137a1d2c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.243520838Z"}]},"request_id":"57de15ec-7095-450e-85db-965d31e5c84a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.247717} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86e892cfbc22842a97fad854137a1d2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"86e892cfbc22842a97fad854137a1d2c"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"86e892cfbc22842a97fad854137a1d2c","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6e7c26918738aced335d29ecd79a1030","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.908704,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867811,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis"} 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":"6e7c26918738aced335d29ecd79a1030"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"18a422dc-834c-4f91-9aba-19bb99783908","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.2720613} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e7c26918738aced335d29ecd79a1030"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d0edd0f-0752-43d7-9e9f-25fc6d1e8ea4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.2780366} 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":"6e7c26918738aced335d29ecd79a1030"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"3972d378-189f-43eb-a1a5-454d15c12335","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.28825} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0a23cb5f-3781-40a9-ab54-6a2e7c740d92","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.288584} 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":"6e7c26918738aced335d29ecd79a1030"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.288227681Z"}]},"request_id":"92836e99-35d5-41af-b8bc-127cf10e5f56","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.2928634} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e7c26918738aced335d29ecd79a1030"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e7c26918738aced335d29ecd79a1030"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"6e7c26918738aced335d29ecd79a1030","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6236c468a1f7efe5a5b00f0ba4c8171f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.366294,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867811,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6236c468a1f7efe5a5b00f0ba4c8171f"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.243520838Z"}]},"request_id":"b63c04c3-8f6f-42e3-96c4-df2fbdc69ecb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.7864017} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6236c468a1f7efe5a5b00f0ba4c8171f"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"444e3cb4-218a-40aa-b654-87ca1ae8566a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.7950914} 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":"6236c468a1f7efe5a5b00f0ba4c8171f"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.243520838Z"}]},"request_id":"4853d7fb-5ef9-42ce-9f3d-646f2052138b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867811.8467371} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6236c468a1f7efe5a5b00f0ba4c8171f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/582c4d48-13ca-4682-9ee2-accdf68a2784 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.084","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6236c468a1f7efe5a5b00f0ba4c8171f"} device-1 | {"level":"info","message":"PATCH /devices/582c4d48-13ca-4682-9ee2-accdf68a2784 200 80ms","method":"PATCH","requestID":"6236c468a1f7efe5a5b00f0ba4c8171f","responseTime":80,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f6c569ec2253202f28c3f7a714180046","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933326,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867811,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxMX0.j_cjRqdGLQoD0-1f0SPjDPn2SiO58vyhnRO4Onh6fis"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6c569ec2253202f28c3f7a714180046"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/582c4d48-13ca-4682-9ee2-accdf68a2784/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.098","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f6c569ec2253202f28c3f7a714180046"} device-1 | {"level":"info","message":"POST /devices/582c4d48-13ca-4682-9ee2-accdf68a2784/websocket 200 93ms","method":"POST","requestID":"f6c569ec2253202f28c3f7a714180046","responseTime":93,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784' 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":"0c6e13fe2b9d6caaca4fbbe615753e09","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/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":"0c6e13fe2b9d6caaca4fbbe615753e09"} device-1 | {"level":"info","message":"OPTIONS /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/websocket 200 1ms","method":"OPTIONS","requestID":"0c6e13fe2b9d6caaca4fbbe615753e09","responseTime":1,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a07e254df878cf698fb2bd38e417240c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.335794,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a07e254df878cf698fb2bd38e417240c"},"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/e81b83d1-7d91-4764-b7d7-15c28c375ed8/websocket 200 47ms","method":"POST","requestID":"a07e254df878cf698fb2bd38e417240c","responseTime":47,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:23:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.053","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a07e254df878cf698fb2bd38e417240c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"032c13b25328172d50c5b0238813ca15","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.406376,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"032c13b25328172d50c5b0238813ca15"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.243520838Z"}]},"request_id":"79939a71-286a-46b6-850f-400d9650376d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.3985019} 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":"032c13b25328172d50c5b0238813ca15"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/582c4d48-13ca-4682-9ee2-accdf68a2784? 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":"032c13b25328172d50c5b0238813ca15"} device-1 | {"level":"info","message":"GET /devices/582c4d48-13ca-4682-9ee2-accdf68a2784? 200 20ms","method":"GET","requestID":"032c13b25328172d50c5b0238813ca15","responseTime":20,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7eba1d7c6388ad54835f833cf327c788","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248303,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7eba1d7c6388ad54835f833cf327c788"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.288227681Z"}]},"request_id":"7d2017b0-e619-4851-9c48-08543ad250f9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.425687} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7eba1d7c6388ad54835f833cf327c788"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8? 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":"7eba1d7c6388ad54835f833cf327c788"} device-1 | {"level":"info","message":"GET /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8? 200 21ms","method":"GET","requestID":"7eba1d7c6388ad54835f833cf327c788","responseTime":21,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"332dd1f8740c2bc97088a409fdfffb63","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:39874","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.377119,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} 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":"332dd1f8740c2bc97088a409fdfffb63"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"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:39874","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.261884,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"89a74ff0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.261564,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"89a79e10-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.243520838Z"}]},"request_id":"540513ee-04cb-49f1-8ec5-18679be3df4f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.4997194} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"89a74ff0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.288227681Z"}]},"request_id":"bb2c57d6-7ab0-460c-81d1-09161a538d6c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.5010672} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"89a79e10-015b-11ef-b963-057e09d3e358"},"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/582c4d48-13ca-4682-9ee2-accdf68a2784? 200 20ms","method":"GET","requestID":"89a74ff0-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8? 200 19ms","method":"GET","requestID":"89a79e10-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"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:39874","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.222282,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} 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":"89b3d310-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.591328,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} 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":"89b44840-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.478641,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"75a59f43-8b06-4b49-8018-de8669091841","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.5840187} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","rebac_allow":false,"scope_allow":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":"89b49660-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.243520838Z"}]},"request_id":"fda847bf-851c-43cf-a167-1c0ba4038969","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.588415} 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":"89b3d310-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.288227681Z"}]},"request_id":"2e73f0f9-4392-4677-b32c-d965f3eb7600","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.593578} device-1 | {"level":"info","message":"POST /devices/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling 200 21ms","method":"POST","requestID":"89b49660-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784/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":"89b44840-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa9f82c0e-3d02-42af-9c05-cdd85f4166c7#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa9f82c0e-3d02-42af-9c05-cdd85f4166c7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"d6b7d4aa-404c-4bed-ada9-efaf37d1c940","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.5993397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b36818e8-6e57-4433-8bff-18d5c81c8ea5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.599634} 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":"332dd1f8740c2bc97088a409fdfffb63"},"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:39874","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/582c4d48-13ca-4682-9ee2-accdf68a2784? 200 37ms","method":"GET","requestID":"89b3d310-015b-11ef-b963-057e09d3e358","responseTime":37,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8? 200 36ms","method":"GET","requestID":"89b44840-015b-11ef-b963-057e09d3e358","responseTime":36,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d776d0a-aa4f-4e05-a007-e1688587b4f3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.6085176} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.805825,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","rebac_allow":false,"scope_allow":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":"89b88e00-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"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 178ms","method":"POST","requestID":"332dd1f8740c2bc97088a409fdfffb63","responseTime":178,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} device-1 | {"level":"info","message":"POST /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling 200 19ms","method":"POST","requestID":"89b88e00-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling"} gateway-1 | {"time_local":"23/Apr/2024:10:23:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"332dd1f8740c2bc97088a409fdfffb63"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8d385568-8a0e-412a-8985-85e012a2e78d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.6232283} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.080665,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","rebac_allow":false,"scope_allow":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":"89bad7f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f723af94d7139b661370b28f14424fcf","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling 200 17ms","method":"POST","requestID":"89bad7f0-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.177818,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f723af94d7139b661370b28f14424fcf"},"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:39874","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0193423d-a027-4ce5-b9d9-8e9a42684b08","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.6397939} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.243520838Z"}]},"request_id":"69de517f-07c7-4887-8198-47231a27429e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.6400049} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f723af94d7139b661370b28f14424fcf"},"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:39874","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.781092,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"89bde530-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/582c4d48-13ca-4682-9ee2-accdf68a2784? 200 18ms","method":"GET","requestID":"f723af94d7139b661370b28f14424fcf","responseTime":18,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/582c4d48-13ca-4682-9ee2-accdf68a2784? 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":"f723af94d7139b661370b28f14424fcf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling 200 13ms","method":"POST","requestID":"89bde530-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"f660246d-00ac-4818-8c56-0673aa9ca0d1"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"73cdb8a3-e0ff-4ef0-b43e-61c32faf970f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"947e82eb-a509-4483-9427-b13df40ae6b8"}]},"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/582c4d48-13ca-4682-9ee2-accdf68a2784"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"75510f2e88bd9f74fd9b11f34b7264bf","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":2.467372,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} 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":"89c07d40-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.377243,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867813,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxM30.7uK8PlHjXdS_0oa08pjix7eDzib3bsZadx-zkcwyGLw"} 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":"75510f2e88bd9f74fd9b11f34b7264bf"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:31.288227681Z"}]},"request_id":"513aacf0-416d-4d06-96b9-78d1edd68dac","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.6654434} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"75510f2e88bd9f74fd9b11f34b7264bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8? 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":"75510f2e88bd9f74fd9b11f34b7264bf"} device-1 | {"level":"info","message":"GET /devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8? 200 16ms","method":"GET","requestID":"75510f2e88bd9f74fd9b11f34b7264bf","responseTime":16,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"4b979c95-ad3d-4757-97f6-7772d22555d4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.670481} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"592b4463-1a90-42ca-a7bb-0af0b8a84e7f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.670814} 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":"89c07d40-015b-11ef-b963-057e09d3e358"},"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/fcda808b-a971-4ee1-9d3b-9ddc082efdc1'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 51ms","method":"POST","requestID":"89c07d40-015b-11ef-b963-057e09d3e358","responseTime":51,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ecc57c0-7ced-480a-88e3-61fd3977e5b3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.746667} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.594046,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","rebac_allow":false,"scope_allow":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":"89ce11d0-015b-11ef-b963-057e09d3e358"},"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/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling 200 12ms","method":"POST","requestID":"89ce11d0-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9bc3377a-5aee-45a8-bcd5-3b1445ec82ca","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867813.7615879} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.712834,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"89d05bc0-015b-11ef-b963-057e09d3e358"},"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/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling 200 10ms","method":"POST","requestID":"89d05bc0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling"} device-1 | {"data":{"peerconnection":"fcda808b-a971-4ee1-9d3b-9ddc082efdc1","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/fcda808b-a971-4ee1-9d3b-9ddc082efdc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fcda808b-a971-4ee1-9d3b-9ddc082efdc1","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":"02cbd9c098547fe0aa06e187a4ae2a15","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/582c4d48-13ca-4682-9ee2-accdf68a2784"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 23ms","method":"POST","requestID":"02cbd9c098547fe0aa06e187a4ae2a15","responseTime":23,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"02cbd9c098547fe0aa06e187a4ae2a15"} device-1 | {"data":{"peerconnection":"fcda808b-a971-4ee1-9d3b-9ddc082efdc1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fcda808b-a971-4ee1-9d3b-9ddc082efdc1","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/fcda808b-a971-4ee1-9d3b-9ddc082efdc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fcda808b-a971-4ee1-9d3b-9ddc082efdc1","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":"895e14c9fd8387c590af80755be17dd3","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/582c4d48-13ca-4682-9ee2-accdf68a2784"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffcda808b-a971-4ee1-9d3b-9ddc082efdc1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"738ffc82-d0f9-4df5-bfb5-42a36cd94a61","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867814.853846} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.259759,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1","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":"8a76fc00-015b-11ef-b963-057e09d3e358"},"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/fcda808b-a971-4ee1-9d3b-9ddc082efdc1 200 11ms","method":"GET","requestID":"8a76fc00-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 46ms","method":"POST","requestID":"895e14c9fd8387c590af80755be17dd3","responseTime":46,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.050","http_referrer":"","http_user_agent":"node-fetch","requestID":"895e14c9fd8387c590af80755be17dd3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5e71a50a-eda3-4433-8446-9dc251db2017","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867814.892759} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.650017,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8a7d1680-015b-11ef-b963-057e09d3e358"},"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/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling 200 11ms","method":"POST","requestID":"8a7d1680-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b2e0c9f3-c046-40d5-aac4-098a7094296d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867814.9074633} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.133853,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8a7f1250-015b-11ef-b963-057e09d3e358"},"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/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling 200 11ms","method":"POST","requestID":"8a7f1250-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"df4bcf29aa6e301484dedbb5cd3d62a7","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.178378,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867815,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA"} 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":"df4bcf29aa6e301484dedbb5cd3d62a7"},"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/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"} gateway-1 | {"time_local":"23/Apr/2024:10:23:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7 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":"df4bcf29aa6e301484dedbb5cd3d62a7"} experiment-1 | {"level":"info","message":"GET /experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7 200 20ms","method":"GET","requestID":"df4bcf29aa6e301484dedbb5cd3d62a7","responseTime":20,"status":200,"url":"/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"59accaedd0d3e963ef3dc64fc69039b3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.954096,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867815,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA"} 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":"59accaedd0d3e963ef3dc64fc69039b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.349201,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867815,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA"} 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":"8a97f180-015b-11ef-b963-057e09d3e358"},"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/fcda808b-a971-4ee1-9d3b-9ddc082efdc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fcda808b-a971-4ee1-9d3b-9ddc082efdc1","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":"5b51f0852afc3642f7022e9ca9f6661a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffcda808b-a971-4ee1-9d3b-9ddc082efdc1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffcda808b-a971-4ee1-9d3b-9ddc082efdc1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"cd108bc9-d028-4ec4-ad38-50d288e7713f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.093044} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"261a97cc-a0ed-4edf-aae5-cd535865413e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.093777} 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/582c4d48-13ca-4682-9ee2-accdf68a2784"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1"}}},"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":"6b07054f70f62cab37eef94a41a1a121","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1"}}},"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":"8a97f180-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"fcda808b-a971-4ee1-9d3b-9ddc082efdc1","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/fcda808b-a971-4ee1-9d3b-9ddc082efdc1 204 64ms","method":"DELETE","requestID":"8a97f180-015b-11ef-b963-057e09d3e358","responseTime":64,"status":204,"url":"/peerconnections/fcda808b-a971-4ee1-9d3b-9ddc082efdc1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F582c4d48-13ca-4682-9ee2-accdf68a2784","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"29922ab6-338b-4cfc-a4af-bac9d052016c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.1603496} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.914827,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784","object_type":"device","rebac_allow":false,"scope_allow":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":"8aa55f00-015b-11ef-b963-057e09d3e358"},"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/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling 200 17ms","method":"POST","requestID":"8aa55f00-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/582c4d48-13ca-4682-9ee2-accdf68a2784/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa9f82c0e-3d02-42af-9c05-cdd85f4166c7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa9f82c0e-3d02-42af-9c05-cdd85f4166c7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"15f95e25-8cae-417f-b73b-80cee0ca94e7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.1724002} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4e10affa-6ed5-471b-82e1-38b5cd528b89","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.1729896} 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":"59accaedd0d3e963ef3dc64fc69039b3"},"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:39874","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe81b83d1-7d91-4764-b7d7-15c28c375ed8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b2cd5f85-df2e-4823-bb79-7fa8f02b165e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.1814256} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.116219,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8","object_type":"device","rebac_allow":false,"scope_allow":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":"8aa89350-015b-11ef-b963-057e09d3e358"},"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/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling 200 18ms","method":"POST","requestID":"8aa89350-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"} gateway-1 | {"time_local":"23/Apr/2024:10:23:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59accaedd0d3e963ef3dc64fc69039b3"} experiment-1 | {"level":"info","message":"DELETE /experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7 204 191ms","method":"DELETE","requestID":"59accaedd0d3e963ef3dc64fc69039b3","responseTime":191,"status":204,"url":"/experiments/a9f82c0e-3d02-42af-9c05-cdd85f4166c7"} gateway-1 | {"time_local":"23/Apr/2024:10:23:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2195","request_time":"3.290","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b2f3301724d2da7e654745ec80bbe788"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"5b51f0852afc3642f7022e9ca9f6661a","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.157","http_referrer":"","http_user_agent":"node-fetch","requestID":"5b51f0852afc3642f7022e9ca9f6661a"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"6b07054f70f62cab37eef94a41a1a121"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 150ms","method":"POST","requestID":"6b07054f70f62cab37eef94a41a1a121","responseTime":150,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"40c7adb50685421739d442325a075264","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:23:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1955","request_time":"1.893","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6f054cd1eb2ccbb78c164111069b03eb"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:35Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/582c4d48-13ca-4682-9ee2-accdf68a2784' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.957178,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867815,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40c7adb50685421739d442325a075264"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e81b83d1-7d91-4764-b7d7-15c28c375ed8' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8a069116-34bb-4142-a0b1-8fd4a61226bf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.276087} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40c7adb50685421739d442325a075264"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a24a62f6-1bc5-4cfd-9fd5-c0277dddc7a5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.2820332} 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":"40c7adb50685421739d442325a075264"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"8974968c-1f43-4ad7-a44f-b5420842e3dc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.2932396} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e25c0777-abf8-4728-bbb6-7c1592d4c17b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.2933595} 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":"40c7adb50685421739d442325a075264"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.293218922Z"}]},"request_id":"04c89652-0f7e-42d3-89ff-1eda77f94292","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.2977345} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40c7adb50685421739d442325a075264"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"40c7adb50685421739d442325a075264","responseTime":49,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"40c7adb50685421739d442325a075264"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"341255706d296fd8ab230f67dc29e308","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.754112,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867815,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxNX0.RKMnFJ3hZ3vVi3p5jHMQkWT-UmDYLwZJWNdllTPf_BA"} 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":"341255706d296fd8ab230f67dc29e308"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1f106fb2-444c-4879-8236-73b5472bcd6e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.3248613} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"341255706d296fd8ab230f67dc29e308"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"842f25f0-0152-45cf-9ff0-7084cd6c0827","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.3297145} 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":"341255706d296fd8ab230f67dc29e308"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"7ad28f04-47c4-4a97-9d03-ba77912ed6de","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.3397424} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"86e0d886-be68-4156-8d37-62d8e2de826d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.3400483} 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":"341255706d296fd8ab230f67dc29e308"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.339723333Z"}]},"request_id":"6bb25427-68b5-4824-be7c-67f5475da476","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867815.3441856} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"341255706d296fd8ab230f67dc29e308"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"341255706d296fd8ab230f67dc29e308"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"341255706d296fd8ab230f67dc29e308","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"48d01a2412bb6771c353f98f6b4aff77","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/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":"48d01a2412bb6771c353f98f6b4aff77"} device-1 | {"level":"info","message":"OPTIONS /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/websocket 200 1ms","method":"OPTIONS","requestID":"48d01a2412bb6771c353f98f6b4aff77","responseTime":1,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"428a26ecd3f77522420c8469cc88668f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.214748,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"428a26ecd3f77522420c8469cc88668f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f218dfa1f2d406c5ee009b8ee371b02a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/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":"f218dfa1f2d406c5ee009b8ee371b02a"} device-1 | {"level":"info","message":"OPTIONS /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/websocket 200 1ms","method":"OPTIONS","requestID":"f218dfa1f2d406c5ee009b8ee371b02a","responseTime":1,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d55479ba18875a0b433b427a0ae7624d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.123524,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} 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":"d55479ba18875a0b433b427a0ae7624d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.098","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"428a26ecd3f77522420c8469cc88668f"} device-1 | {"level":"info","message":"POST /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/websocket 200 93ms","method":"POST","requestID":"428a26ecd3f77522420c8469cc88668f","responseTime":93,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.129","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d55479ba18875a0b433b427a0ae7624d"} device-1 | {"level":"info","message":"POST /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/websocket 200 124ms","method":"POST","requestID":"d55479ba18875a0b433b427a0ae7624d","responseTime":124,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8f92948f67141a48cf686e2ef3afe7cb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.37318,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8f92948f67141a48cf686e2ef3afe7cb"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.293218922Z"}]},"request_id":"5e79b48d-652f-42f7-b36d-78f682f63ca3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.5798953} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8f92948f67141a48cf686e2ef3afe7cb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12? 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":"8f92948f67141a48cf686e2ef3afe7cb"} device-1 | {"level":"info","message":"GET /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12? 200 20ms","method":"GET","requestID":"8f92948f67141a48cf686e2ef3afe7cb","responseTime":20,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b904749456a5398af18526122865708b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.292402,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b904749456a5398af18526122865708b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.339723333Z"}]},"request_id":"536b8f2d-cb79-485b-8594-f4729d39b953","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.6079748} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b904749456a5398af18526122865708b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1? 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":"b904749456a5398af18526122865708b"} device-1 | {"level":"info","message":"GET /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1? 200 20ms","method":"GET","requestID":"b904749456a5398af18526122865708b","responseTime":20,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"06da6956ef3043dd7b16d87fbb51a35b","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:39874","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.406243,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} 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":"06da6956ef3043dd7b16d87fbb51a35b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"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:39874","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.13207,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} 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":"8c287c90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.322036,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} 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":"8c28cab0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.293218922Z"}]},"request_id":"b5be2eb7-0295-448d-95c0-f2be994509e4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.7082808} 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":"8c287c90-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.339723333Z"}]},"request_id":"8c2c4fd3-cf9c-4f9d-a8b0-db0a72b60c33","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.7104661} 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":"8c28cab0-015b-11ef-b963-057e09d3e358"},"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/da9a505a-8c2d-4494-a874-3da8b00f8a12? 200 33ms","method":"GET","requestID":"8c287c90-015b-11ef-b963-057e09d3e358","responseTime":33,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1? 200 33ms","method":"GET","requestID":"8c28cab0-015b-11ef-b963-057e09d3e358","responseTime":33,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"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/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.038354,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} 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":"8c346370-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904034,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} 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":"8c34b190-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:38300","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:38300","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.319253,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.293218922Z"}]},"request_id":"76b5e8ea-d90a-491a-9bcd-a44cfa28ed1c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.787422} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46f0adcf-da8f-4448-9d12-32c806501e91","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.7876391} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.339723333Z"}]},"request_id":"9dbf772e-646a-4d16-97de-4e2f4bf3acb7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.7886238} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c346370-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","rebac_allow":false,"scope_allow":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":"8c3526c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} 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":"8c34b190-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c882a72-1d78-4f4e-b4ff-ac1019c52a7c#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c882a72-1d78-4f4e-b4ff-ac1019c52a7c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"bd75382d-027f-429d-b3ff-07992c4e9dcc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.796627} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"84ab7a0e-7973-427a-865a-f2c0134bcef2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.7969458} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12? 200 33ms","method":"GET","requestID":"8c346370-015b-11ef-b963-057e09d3e358","responseTime":33,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12?"} 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":"06da6956ef3043dd7b16d87fbb51a35b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":26}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling 200 29ms","method":"POST","requestID":"8c3526c0-015b-11ef-b963-057e09d3e358","responseTime":29,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1? 200 34ms","method":"GET","requestID":"8c34b190-015b-11ef-b963-057e09d3e358","responseTime":34,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2afad907-964e-4203-a7e2-c6e7a3d6e3bb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.8138504} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.710005,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"777","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"06da6956ef3043dd7b16d87fbb51a35b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 191ms","method":"POST","requestID":"06da6956ef3043dd7b16d87fbb51a35b","responseTime":191,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8c3aa500-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d55a67e9-6904-47e4-a2f9-42b3f9e8973a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.8156836} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.917656,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c3af320-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4f712f4147ec9a97310ca3c6ea8756a9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling 200 13ms","method":"POST","requestID":"8c3aa500-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling 200 15ms","method":"POST","requestID":"8c3af320-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.850752,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f712f4147ec9a97310ca3c6ea8756a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"42d04d28-929d-4a4f-b362-d52f2ec878f8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.8337226} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.293218922Z"}]},"request_id":"073fe89a-a688-4709-a32c-1ce68d4f2661","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.8338122} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f712f4147ec9a97310ca3c6ea8756a9"},"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:39874","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.915613,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","rebac_allow":false,"scope_allow":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":"8c3db240-015b-11ef-b963-057e09d3e358"},"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":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12? 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":"4f712f4147ec9a97310ca3c6ea8756a9"} device-1 | {"level":"info","message":"GET /devices/da9a505a-8c2d-4494-a874-3da8b00f8a12? 200 18ms","method":"GET","requestID":"4f712f4147ec9a97310ca3c6ea8756a9","responseTime":18,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling 200 13ms","method":"POST","requestID":"8c3db240-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"9f1ca6b5-2298-4499-b042-1dfb5544f500"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"9e14f140-4fd2-4a5f-9189-6bf4ccd21946"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"bac54dd0-afed-4c4c-bef6-a2d3c60e99e9"}]},"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/da9a505a-8c2d-4494-a874-3da8b00f8a12"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"02c1ab9fdaf0a2031a396453701f9883","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.873651,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} 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":"8c404a50-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.584757,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867817,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxN30.UNs9IAAMgiE__k7qZLVX6_gSOyOR0ekEPiivq8xYpxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02c1ab9fdaf0a2031a396453701f9883"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:35.339723333Z"}]},"request_id":"4d8a4dcd-fcf5-46bf-a3c3-39d4b5a9f549","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.858232} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02c1ab9fdaf0a2031a396453701f9883"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c5ea2dba-dcdd-4aa0-b689-d212e4ddb5ac","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.8644598} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db2cf241-29b0-4cb3-8c9a-cfc511e813d8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.8647988} 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":"8c404a50-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1? 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":"02c1ab9fdaf0a2031a396453701f9883"} device-1 | {"level":"info","message":"GET /devices/83a787f6-4ef1-4858-89c9-b171937b2ae1? 200 24ms","method":"GET","requestID":"02c1ab9fdaf0a2031a396453701f9883","responseTime":24,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1?"} 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/22580219-7439-4725-8a5a-3477cc003c56'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"8c404a50-015b-11ef-b963-057e09d3e358","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b872673-ebf3-4268-a879-cd65d2fc7b8c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.9297285} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.551634,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8c4c5840-015b-11ef-b963-057e09d3e358"},"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/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling 200 10ms","method":"POST","requestID":"8c4c5840-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"838b33b5-150b-4742-b93e-23cbdcc8f8d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867817.9414408} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.555145,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8c4e2d00-015b-11ef-b963-057e09d3e358"},"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/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling 200 10ms","method":"POST","requestID":"8c4e2d00-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"22580219-7439-4725-8a5a-3477cc003c56","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":"f921e08bb746df8510748f8c8e9fe2ec","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/da9a505a-8c2d-4494-a874-3da8b00f8a12"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"f921e08bb746df8510748f8c8e9fe2ec","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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":"f921e08bb746df8510748f8c8e9fe2ec"} device-1 | {"data":{"peerconnection":"22580219-7439-4725-8a5a-3477cc003c56","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"22580219-7439-4725-8a5a-3477cc003c56","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/22580219-7439-4725-8a5a-3477cc003c56' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"22580219-7439-4725-8a5a-3477cc003c56","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56"}}},"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":"949f6cb93a86810636ea8a3c9be1894f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F22580219-7439-4725-8a5a-3477cc003c56","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a766a845-3f4e-449d-8281-306f880a012a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867818.1866546} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.684151,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56","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":"8c73b660-015b-11ef-b963-057e09d3e358"},"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/22580219-7439-4725-8a5a-3477cc003c56 200 10ms","method":"GET","requestID":"8c73b660-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/peerconnections/22580219-7439-4725-8a5a-3477cc003c56"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"949f6cb93a86810636ea8a3c9be1894f","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"949f6cb93a86810636ea8a3c9be1894f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"156bbaf1-b559-499d-a59e-4a351ad25075","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867818.2170315} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.633775,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8c784a40-015b-11ef-b963-057e09d3e358"},"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/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling 200 10ms","method":"POST","requestID":"8c784a40-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5a3c925d-6089-40ac-af03-cc31cfafb973","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867818.2291994} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.441322,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8c7a4610-015b-11ef-b963-057e09d3e358"},"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/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling 200 9ms","method":"POST","requestID":"8c7a4610-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOH0.bzZPJBHiVwzoPyorVOrMEpGo3fJzVxVoKU6wexp-Nwo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9ac85754ae4b3267cd9f5e9a32c3bb29","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.248879,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867818,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOH0.bzZPJBHiVwzoPyorVOrMEpGo3fJzVxVoKU6wexp-Nwo"} 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":"9ac85754ae4b3267cd9f5e9a32c3bb29"},"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/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"} gateway-1 | {"time_local":"23/Apr/2024:10:23:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c HTTP/1.1","status": "200","body_bytes_sent":"850","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9ac85754ae4b3267cd9f5e9a32c3bb29"} experiment-1 | {"level":"info","message":"GET /experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c 200 19ms","method":"GET","requestID":"9ac85754ae4b3267cd9f5e9a32c3bb29","responseTime":19,"status":200,"url":"/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOH0.bzZPJBHiVwzoPyorVOrMEpGo3fJzVxVoKU6wexp-Nwo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f96226ecb7638e522f6f876a3a4eed87","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.26117,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867818,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOH0.bzZPJBHiVwzoPyorVOrMEpGo3fJzVxVoKU6wexp-Nwo"} 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":"f96226ecb7638e522f6f876a3a4eed87"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.253516,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867818,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOH0.bzZPJBHiVwzoPyorVOrMEpGo3fJzVxVoKU6wexp-Nwo"} 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":"8ce89840-015b-11ef-b963-057e09d3e358"},"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/22580219-7439-4725-8a5a-3477cc003c56' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"22580219-7439-4725-8a5a-3477cc003c56","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":"1f0f387e3d7da48595d6f9a252ae3cb8","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F22580219-7439-4725-8a5a-3477cc003c56': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F22580219-7439-4725-8a5a-3477cc003c56","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"d68765d4-100d-4e0e-a165-4f62984a41f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867818.978998} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56"}}},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf009f9f-c9a6-450c-a9fa-ff421a8114a1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867818.9797027} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eac8a88960ba8423f0e5b2e18dacf557","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/da9a505a-8c2d-4494-a874-3da8b00f8a12"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/22580219-7439-4725-8a5a-3477cc003c56"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8ce89840-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"data":{"peerconnection":"22580219-7439-4725-8a5a-3477cc003c56","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/22580219-7439-4725-8a5a-3477cc003c56 204 59ms","method":"DELETE","requestID":"8ce89840-015b-11ef-b963-057e09d3e358","responseTime":59,"status":204,"url":"/peerconnections/22580219-7439-4725-8a5a-3477cc003c56"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda9a505a-8c2d-4494-a874-3da8b00f8a12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"790b5186-db39-4b27-a3d7-b615ea12202c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.0411582} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.82955,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12","object_type":"device","rebac_allow":false,"scope_allow":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":"8cf5b7a0-015b-11ef-b963-057e09d3e358"},"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/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling 200 14ms","method":"POST","requestID":"8cf5b7a0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/da9a505a-8c2d-4494-a874-3da8b00f8a12/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c882a72-1d78-4f4e-b4ff-ac1019c52a7c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7c882a72-1d78-4f4e-b4ff-ac1019c52a7c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"3d927ffe-8672-4822-b2f4-0e62ea0e60c0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.0506501} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1617b1de-1ded-4862-bcdd-fbaeadc51853","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.051116} 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":"f96226ecb7638e522f6f876a3a4eed87"},"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:39874","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83a787f6-4ef1-4858-89c9-b171937b2ae1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b1223201-1e61-4828-9d30-bdc0514217da","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.0615134} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.842953,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1","object_type":"device","rebac_allow":false,"scope_allow":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":"8cf8c4e0-015b-11ef-b963-057e09d3e358"},"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/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling 200 15ms","method":"POST","requestID":"8cf8c4e0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/83a787f6-4ef1-4858-89c9-b171937b2ae1/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"} gateway-1 | {"time_local":"23/Apr/2024:10:23:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c 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":"f96226ecb7638e522f6f876a3a4eed87"} experiment-1 | {"level":"info","message":"DELETE /experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c 204 187ms","method":"DELETE","requestID":"f96226ecb7638e522f6f876a3a4eed87","responseTime":187,"status":204,"url":"/experiments/7c882a72-1d78-4f4e-b4ff-ac1019c52a7c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"1f0f387e3d7da48595d6f9a252ae3cb8","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"1f0f387e3d7da48595d6f9a252ae3cb8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"eac8a88960ba8423f0e5b2e18dacf557","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"eac8a88960ba8423f0e5b2e18dacf557"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e971c201ba7572dbd89b0de9b2f77abb","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2180","request_time":"1.685","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"be3b14a77d94494db732b3720bf15bfa"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.943197,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867819,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ"} gateway-1 | {"time_local":"23/Apr/2024:10:23:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2046","request_time":"1.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":"e6481e44bdf3e38736f7e9ae1d3ab4e8"} 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":"e971c201ba7572dbd89b0de9b2f77abb"},"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/da9a505a-8c2d-4494-a874-3da8b00f8a12' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3b1b1129-7701-4c6d-95c9-b19b3fd5199c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.149201} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e971c201ba7572dbd89b0de9b2f77abb"},"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/83a787f6-4ef1-4858-89c9-b171937b2ae1' 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f54cfe60-23ad-4d8e-9416-d0b6cc62636f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.1540842} 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":"e971c201ba7572dbd89b0de9b2f77abb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"61bbbaa6-62b9-449b-96fc-29f8cb2f63c2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.1636438} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d6c0fc92-a616-4543-94fd-caf3df0e44ea","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.1638012} 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":"e971c201ba7572dbd89b0de9b2f77abb"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.163625668Z"}]},"request_id":"3a43defb-beeb-47b8-9ee9-46b1c7a3f71b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.168148} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e971c201ba7572dbd89b0de9b2f77abb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e971c201ba7572dbd89b0de9b2f77abb"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"e971c201ba7572dbd89b0de9b2f77abb","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3c5ea50e81fdaed4ca36d45edf652c05","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.389794,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867819,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ"} 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":"3c5ea50e81fdaed4ca36d45edf652c05"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d0ec3736-69b4-4c14-bc17-0e0a437306e4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.1920857} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c5ea50e81fdaed4ca36d45edf652c05"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2cca615f-d2c5-4565-bf21-ce5f0bd346ca","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.1963463} 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":"3c5ea50e81fdaed4ca36d45edf652c05"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"77802759-d6da-4e9b-982f-e365027af5f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.2086525} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"19d25934-85cc-4d6e-9736-5c6d4d651819","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.2089744} 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":"3c5ea50e81fdaed4ca36d45edf652c05"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.208627485Z"}]},"request_id":"5a85895e-0bf4-4a09-8ce4-3c4d9ab61613","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.2138479} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c5ea50e81fdaed4ca36d45edf652c05"},"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 42ms","method":"POST","requestID":"3c5ea50e81fdaed4ca36d45edf652c05","responseTime":42,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3c5ea50e81fdaed4ca36d45edf652c05"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3861b8a7f5f0ad3205625d3c3fd4c80b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.241771,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867819,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3861b8a7f5f0ad3205625d3c3fd4c80b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.208627485Z"}]},"request_id":"3264fcab-0405-4105-a115-f3f97873479b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.7179127} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3861b8a7f5f0ad3205625d3c3fd4c80b"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ffd78b5f-c17a-49b2-b537-f85715b59b6f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.7261515} 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":"3861b8a7f5f0ad3205625d3c3fd4c80b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.208627485Z"}]},"request_id":"70013309-e4cd-4b37-a880-9ffa980504d0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867819.7523508} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3861b8a7f5f0ad3205625d3c3fd4c80b"},"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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89 200 54ms","method":"PATCH","requestID":"3861b8a7f5f0ad3205625d3c3fd4c80b","responseTime":54,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89"} gateway-1 | {"time_local":"23/Apr/2024:10:23:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.059","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3861b8a7f5f0ad3205625d3c3fd4c80b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6718079ca1399bfe6340946d9f096977","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.188681,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867819,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgxOX0.a3EUSWAHPFlgJEr0sXr8Gxvza0VUB7DB3CBHuWQvOpQ"} 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":"6718079ca1399bfe6340946d9f096977"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/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":"6718079ca1399bfe6340946d9f096977"} device-1 | {"level":"info","message":"POST /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/websocket 200 24ms","method":"POST","requestID":"6718079ca1399bfe6340946d9f096977","responseTime":24,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89' 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":"a8cee5f208a18995a0380397572eab4f","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/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":"a8cee5f208a18995a0380397572eab4f"} device-1 | {"level":"info","message":"OPTIONS /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/websocket 200 2ms","method":"OPTIONS","requestID":"a8cee5f208a18995a0380397572eab4f","responseTime":2,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6870475a9a02daf9dca0c6f9990908ba","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.283445,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} 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":"6870475a9a02daf9dca0c6f9990908ba"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/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":"6870475a9a02daf9dca0c6f9990908ba"} device-1 | {"level":"info","message":"POST /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/websocket 200 27ms","method":"POST","requestID":"6870475a9a02daf9dca0c6f9990908ba","responseTime":27,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cc806f7420b04d79a05c70fc8a462f58","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.197222,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} 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":"cc806f7420b04d79a05c70fc8a462f58"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.163625668Z"}]},"request_id":"2123390e-15d8-44f1-af96-8b9fbdb3b8e9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.2787561} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cc806f7420b04d79a05c70fc8a462f58"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cc806f7420b04d79a05c70fc8a462f58"} device-1 | {"level":"info","message":"GET /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f? 200 22ms","method":"GET","requestID":"cc806f7420b04d79a05c70fc8a462f58","responseTime":22,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2d3c47defe3ca3999b5a0f0773d7ecf8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.280903,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d3c47defe3ca3999b5a0f0773d7ecf8"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.208627485Z"}]},"request_id":"fef28ace-1c68-4022-bab9-82e96abd30f6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.3082504} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d3c47defe3ca3999b5a0f0773d7ecf8"},"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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89? 200 22ms","method":"GET","requestID":"2d3c47defe3ca3999b5a0f0773d7ecf8","responseTime":22,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89? 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":"2d3c47defe3ca3999b5a0f0773d7ecf8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d251a0be08979c4998c07adb50667ba7","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:39874","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.214695,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} 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":"d251a0be08979c4998c07adb50667ba7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"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:39874","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.150919,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8e5b3b10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.817096,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} 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":"8e5b6220-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.163625668Z"}]},"request_id":"42947081-e2a3-448e-83cf-70778fa6bbd8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.3899827} 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":"8e5b3b10-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.208627485Z"}]},"request_id":"7574877b-0ea6-4639-af8f-1aec6ce840bd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.3917923} 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":"8e5b6220-015b-11ef-b963-057e09d3e358"},"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/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f? 200 24ms","method":"GET","requestID":"8e5b3b10-015b-11ef-b963-057e09d3e358","responseTime":24,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89? 200 24ms","method":"GET","requestID":"8e5b6220-015b-11ef-b963-057e09d3e358","responseTime":24,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"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:39874","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.767266,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8e69e110-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.392986,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} 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":"8e6a2f30-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.163625668Z"}]},"request_id":"97f038e9-a073-4b36-9f87-24d954e5075b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.4903288} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e712b22b-26da-4c69-ae14-816dcbb52758","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.4906867} 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":"8e69e110-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.788318,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.208627485Z"}]},"request_id":"216c5945-bfd6-42f4-8b0f-8c9872c111ea","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.4944692} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8e6aa460-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} 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":"8e6a2f30-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f? 200 30ms","method":"GET","requestID":"8e69e110-015b-11ef-b963-057e09d3e358","responseTime":30,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1071046b-11ea-4417-b390-8e54ed2f513f#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1071046b-11ea-4417-b390-8e54ed2f513f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c8d1c19a-8c6e-452f-b329-bcbf5ef4c31d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.509334} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling 200 32ms","method":"POST","requestID":"8e6aa460-015b-11ef-b963-057e09d3e358","responseTime":32,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling"} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"151c1231-e568-490e-850d-7c7079c202db","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.509716} device-1 | {"level":"info","message":"GET /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89? 200 36ms","method":"GET","requestID":"8e6a2f30-015b-11ef-b963-057e09d3e358","responseTime":36,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89?"} 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":"d251a0be08979c4998c07adb50667ba7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e4851227-9cd9-4032-83d1-4df735c7c46f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.5198016} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.508401,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","rebac_allow":false,"scope_allow":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":"8e6ffb90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b6b8a6f-ed26-4001-a4ab-5ee2217a8b73","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.524125} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.488166,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling 200 14ms","method":"POST","requestID":"8e6ffb90-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling"} 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":"8e7049b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:23:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.210","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d251a0be08979c4998c07adb50667ba7"} experiment-1 | {"level":"info","message":"POST /experiments? 201 202ms","method":"POST","requestID":"d251a0be08979c4998c07adb50667ba7","responseTime":202,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling 200 16ms","method":"POST","requestID":"8e7049b0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"30dbf59bede5610e604d601661f03ef9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c33ac11-40cc-42c2-b55f-1d5e95392ea4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.5392344} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.816423,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} 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":"30dbf59bede5610e604d601661f03ef9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.513103,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8e732fe0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.163625668Z"}]},"request_id":"b4535ecd-8038-48bb-96a4-4753e6705c7d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.5445688} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling 200 11ms","method":"POST","requestID":"8e732fe0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/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":"30dbf59bede5610e604d601661f03ef9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"9bc8661a-e84f-4fb1-af52-6cd61f8de1a3"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"72c1eb0f-afcc-48c3-9132-98c0d1ade7ef"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"04be009f-924d-46a7-bcc2-55f3d8c99562"}]},"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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f? 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":"30dbf59bede5610e604d601661f03ef9"} device-1 | {"level":"info","message":"GET /devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f? 200 15ms","method":"GET","requestID":"30dbf59bede5610e604d601661f03ef9","responseTime":15,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.908732,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} 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":"8e7579d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1bd6649ec418ba9b9c5ec1476fd8a905","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.82306,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867821,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMX0.lmIodn6076nvjuXed_dBlUu0FzJRioIIvbCOaGbVy1Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1bd6649ec418ba9b9c5ec1476fd8a905"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"45ba76f3-7be6-4230-8262-5f2fdac8e08c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.566487} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"21aa26c3-cacd-4c17-bc9b-eb834b588ae2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.5669715} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:39.208627485Z"}]},"request_id":"08ffac94-55b9-4400-9742-fe9545b5aa60","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.5677116} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1bd6649ec418ba9b9c5ec1476fd8a905"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"level":"info","message":"POST /relations/update 200 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":"8e7579d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89? 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":"1bd6649ec418ba9b9c5ec1476fd8a905"} device-1 | {"level":"info","message":"GET /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89? 200 17ms","method":"GET","requestID":"1bd6649ec418ba9b9c5ec1476fd8a905","responseTime":17,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89?"} 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/1abbdc09-7271-4183-996f-4d4cc5c66006'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"8e7579d0-015b-11ef-b963-057e09d3e358","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6a714e23-38b3-484a-a926-597fe9e89493","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.631946} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.883553,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8e8160b0-015b-11ef-b963-057e09d3e358"},"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/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling 200 10ms","method":"POST","requestID":"8e8160b0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c492a31a-4219-4a63-b52b-fd1a44d4e2e3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867821.6441884} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.468065,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","rebac_allow":false,"scope_allow":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":"8e833570-015b-11ef-b963-057e09d3e358"},"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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling 200 10ms","method":"POST","requestID":"8e833570-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling"} device-1 | {"data":{"peerconnection":"1abbdc09-7271-4183-996f-4d4cc5c66006","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/1abbdc09-7271-4183-996f-4d4cc5c66006' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1abbdc09-7271-4183-996f-4d4cc5c66006","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":"aeb052d7c098bcc633594fa176167e08","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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"aeb052d7c098bcc633594fa176167e08","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.016","http_referrer":"","http_user_agent":"node-fetch","requestID":"aeb052d7c098bcc633594fa176167e08"} device-1 | {"data":{"peerconnection":"1abbdc09-7271-4183-996f-4d4cc5c66006","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1abbdc09-7271-4183-996f-4d4cc5c66006","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/1abbdc09-7271-4183-996f-4d4cc5c66006' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1abbdc09-7271-4183-996f-4d4cc5c66006","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":"541bb5999f37339685d5df5313a7864d","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1abbdc09-7271-4183-996f-4d4cc5c66006","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f4a8c86f-fe52-44d9-b219-8a3a66c3b630","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867822.8632603} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.048264,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006","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":"8f3d5db0-015b-11ef-b963-057e09d3e358"},"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/1abbdc09-7271-4183-996f-4d4cc5c66006 200 8ms","method":"GET","requestID":"8f3d5db0-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"541bb5999f37339685d5df5313a7864d","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"541bb5999f37339685d5df5313a7864d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f227ae7-62fa-46fb-afaf-a45e240ab3fc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867822.8872626} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.013448,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","rebac_allow":false,"scope_allow":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":"8f410730-015b-11ef-b963-057e09d3e358"},"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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling 200 8ms","method":"POST","requestID":"8f410730-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91c4b34f-02fc-4bfc-9199-1ad614ffcff7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867822.897812} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.179931,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","rebac_allow":false,"scope_allow":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":"8f428dd0-015b-11ef-b963-057e09d3e358"},"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/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling 200 10ms","method":"POST","requestID":"8f428dd0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMn0.oSNqvDMsYNdOAVMWVw21l4dIxWnt8OUl3hVGAlym0DM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cb03c1b27fddf99c7f1d719bd5cf7be6","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1071046b-11ea-4417-b390-8e54ed2f513f"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.896419,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867822,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMn0.oSNqvDMsYNdOAVMWVw21l4dIxWnt8OUl3hVGAlym0DM"} 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":"cb03c1b27fddf99c7f1d719bd5cf7be6"},"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/1071046b-11ea-4417-b390-8e54ed2f513f"} gateway-1 | {"time_local":"23/Apr/2024:10:23:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1071046b-11ea-4417-b390-8e54ed2f513f HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cb03c1b27fddf99c7f1d719bd5cf7be6"} experiment-1 | {"level":"info","message":"GET /experiments/1071046b-11ea-4417-b390-8e54ed2f513f 200 17ms","method":"GET","requestID":"cb03c1b27fddf99c7f1d719bd5cf7be6","responseTime":17,"status":200,"url":"/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMn0.oSNqvDMsYNdOAVMWVw21l4dIxWnt8OUl3hVGAlym0DM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3c03e05d577b89e508e3d730a245789a","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1071046b-11ea-4417-b390-8e54ed2f513f"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.14404,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867822,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMn0.oSNqvDMsYNdOAVMWVw21l4dIxWnt8OUl3hVGAlym0DM"} 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":"3c03e05d577b89e508e3d730a245789a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.221607,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867822,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyMn0.oSNqvDMsYNdOAVMWVw21l4dIxWnt8OUl3hVGAlym0DM"} 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":"8f521e30-015b-11ef-b963-057e09d3e358"},"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/1abbdc09-7271-4183-996f-4d4cc5c66006' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1abbdc09-7271-4183-996f-4d4cc5c66006","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1abbdc09-7271-4183-996f-4d4cc5c66006': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1abbdc09-7271-4183-996f-4d4cc5c66006","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"2b1d4f91-bf7a-43e7-a7a7-58e366dd524f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.0237088} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"547a6465-efef-4c58-adce-19bb4837894d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.0243146} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b71a8bd3a3a03e770d5fb42c9bcc057c","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":"8f521e30-015b-11ef-b963-057e09d3e358"},"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":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b1aedc02ddce8b56a97b5a070d34425e","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006 204 60ms","method":"DELETE","requestID":"8f521e30-015b-11ef-b963-057e09d3e358","responseTime":60,"status":204,"url":"/peerconnections/1abbdc09-7271-4183-996f-4d4cc5c66006"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"480f7d78-7d53-4349-a1ea-77b48814e6c5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.0887458} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.127806,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8f5f64a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1071046b-11ea-4417-b390-8e54ed2f513f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1071046b-11ea-4417-b390-8e54ed2f513f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"a6da6864-836c-4d14-8a56-c3bfecde9f1e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.0947638} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b888abb4-6d48-40a7-b109-2b1e92d4e7db","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.0949674} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling 200 14ms","method":"POST","requestID":"8f5f64a0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c03e05d577b89e508e3d730a245789a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d5aa493-a170-4325-9cf0-703e621c037f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.1040802} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.946903,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"8f61d5a0-015b-11ef-b963-057e09d3e358"},"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/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling 200 12ms","method":"POST","requestID":"8f61d5a0-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1071046b-11ea-4417-b390-8e54ed2f513f"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1071046b-11ea-4417-b390-8e54ed2f513f 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":"3c03e05d577b89e508e3d730a245789a"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2181","request_time":"3.377","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a4a92d5afe6c5ba41acd2d6153e8ac34"} experiment-1 | {"level":"info","message":"DELETE /experiments/1071046b-11ea-4417-b390-8e54ed2f513f 204 187ms","method":"DELETE","requestID":"3c03e05d577b89e508e3d730a245789a","responseTime":187,"status":204,"url":"/experiments/1071046b-11ea-4417-b390-8e54ed2f513f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"b71a8bd3a3a03e770d5fb42c9bcc057c","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"b71a8bd3a3a03e770d5fb42c9bcc057c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"b1aedc02ddce8b56a97b5a070d34425e","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"b1aedc02ddce8b56a97b5a070d34425e"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"44fddbf1dc65a976f7d490843f84861e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:43Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1939","request_time":"1.936","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"33a16bb86533aa867a2a31d0ac8790f1"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.997077,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867823,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA"} 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":"44fddbf1dc65a976f7d490843f84861e"},"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/5ce228dd-8a1f-4d06-bbd7-a5308ffe7c89' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2c56e6bd-7605-4a6a-a4da-d86d8083fc1f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.1996} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44fddbf1dc65a976f7d490843f84861e"},"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/e7cff89a-bd06-4d5c-9f2b-a2e744b5fa2f' 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"100706cc-b67f-4e7f-8bcf-353773c1f2ec","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.2052104} 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":"44fddbf1dc65a976f7d490843f84861e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"41ba97f2-678a-4f8e-ae4b-4d1bda2a7339","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.2148983} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"314569c7-91b1-414c-9df1-562d597faed1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.215061} 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":"44fddbf1dc65a976f7d490843f84861e"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.214882196Z"}]},"request_id":"47bf2282-6229-40c7-84c0-8cfd51f7a64f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.2198718} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44fddbf1dc65a976f7d490843f84861e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"44fddbf1dc65a976f7d490843f84861e"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"44fddbf1dc65a976f7d490843f84861e","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"83543a22e44cd5e509afc3617e19068d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.802979,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867823,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA"} 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":"83543a22e44cd5e509afc3617e19068d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"50d0bbc2-1b44-4795-b6d9-67a62c1f886a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.244367} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"83543a22e44cd5e509afc3617e19068d"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c7ba695-7e5d-41ae-8448-cf00ab237f80","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.2502427} 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":"83543a22e44cd5e509afc3617e19068d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"0cf7f52e-1a34-4835-b60c-b979252f814b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.262559} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab4869dd-23c4-4636-98a0-8531555eaa9a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.2627914} 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":"83543a22e44cd5e509afc3617e19068d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.262532315Z"}]},"request_id":"cc381876-97eb-41ea-b7e8-df0641c0cbf4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.2671688} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"83543a22e44cd5e509afc3617e19068d"},"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":"83543a22e44cd5e509afc3617e19068d","responseTime":42,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"83543a22e44cd5e509afc3617e19068d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"f4aac3380e436570010df7d34dbe88d1","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.121359,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867823,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4aac3380e436570010df7d34dbe88d1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.214882196Z"}]},"request_id":"bde31115-f2f0-482e-9022-0f379b5b197a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.7614017} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4aac3380e436570010df7d34dbe88d1"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a63193fd-bbfd-4b2d-bc32-25736065f756","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.769534} 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":"f4aac3380e436570010df7d34dbe88d1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.214882196Z"}]},"request_id":"f906225d-ad9d-4c5e-9047-2013e4c1690b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867823.785589} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4aac3380e436570010df7d34dbe88d1"},"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/cc86f9bb-5644-4fdf-9265-73a514eb1d6d 200 44ms","method":"PATCH","requestID":"f4aac3380e436570010df7d34dbe88d1","responseTime":44,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f4aac3380e436570010df7d34dbe88d1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1254b15f526d7e81f7a7f76edd24c192","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.274778,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867823,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyM30.QXaOot3Jk7LueURpRi_cpXkyH5qw4EyPwbqlMrXPYYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1254b15f526d7e81f7a7f76edd24c192"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/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":"1254b15f526d7e81f7a7f76edd24c192"} device-1 | {"level":"info","message":"POST /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/websocket 200 22ms","method":"POST","requestID":"1254b15f526d7e81f7a7f76edd24c192","responseTime":22,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d' 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":"bbe1af2a3780e77d545ac24bddf4424d","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/03a546bb-abbe-482c-8224-34eca8dea53b/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":"bbe1af2a3780e77d545ac24bddf4424d"} device-1 | {"level":"info","message":"OPTIONS /devices/03a546bb-abbe-482c-8224-34eca8dea53b/websocket 200 1ms","method":"OPTIONS","requestID":"bbe1af2a3780e77d545ac24bddf4424d","responseTime":1,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f8461682fd9a22b200c29261dd4f950f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.147231,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8461682fd9a22b200c29261dd4f950f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/03a546bb-abbe-482c-8224-34eca8dea53b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f8461682fd9a22b200c29261dd4f950f"} device-1 | {"level":"info","message":"POST /devices/03a546bb-abbe-482c-8224-34eca8dea53b/websocket 200 39ms","method":"POST","requestID":"f8461682fd9a22b200c29261dd4f950f","responseTime":39,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9f1fd63ba9240405a30b5f95768ec8c5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.437703,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"9f1fd63ba9240405a30b5f95768ec8c5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.214882196Z"}]},"request_id":"68329cd4-97ba-473a-8672-3d65680bd903","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.326202} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f1fd63ba9240405a30b5f95768ec8c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d? 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":"9f1fd63ba9240405a30b5f95768ec8c5"} device-1 | {"level":"info","message":"GET /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d? 200 22ms","method":"GET","requestID":"9f1fd63ba9240405a30b5f95768ec8c5","responseTime":22,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1ebea087fa6f68a4664d926ca94b27a2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.356945,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ebea087fa6f68a4664d926ca94b27a2"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.262532315Z"}]},"request_id":"03276cb9-4c1e-43dd-9f46-d4eaf73a1694","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.3584292} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ebea087fa6f68a4664d926ca94b27a2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/03a546bb-abbe-482c-8224-34eca8dea53b? 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":"1ebea087fa6f68a4664d926ca94b27a2"} device-1 | {"level":"info","message":"GET /devices/03a546bb-abbe-482c-8224-34eca8dea53b? 200 24ms","method":"GET","requestID":"1ebea087fa6f68a4664d926ca94b27a2","responseTime":24,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"caf6fc78b787187c75a89b68e5be145e","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:39874","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.21898,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"caf6fc78b787187c75a89b68e5be145e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"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:39874","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.071809,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"90c7f550-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.004946,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"90c84370-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.214882196Z"}]},"request_id":"10fcac58-60db-47c1-aeae-3cd26272a1c1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.4624097} 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":"90c7f550-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.262532315Z"}]},"request_id":"e94fb088-569b-44c9-83c0-3a794f490fb5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.4643152} 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":"90c84370-015b-11ef-b963-057e09d3e358"},"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/cc86f9bb-5644-4fdf-9265-73a514eb1d6d? 200 28ms","method":"GET","requestID":"90c7f550-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/03a546bb-abbe-482c-8224-34eca8dea53b? 200 28ms","method":"GET","requestID":"90c84370-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"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/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":3.401026,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.377772,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"90d4eda0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"90d53bc0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.214882196Z"}]},"request_id":"23a85506-b646-4a36-a5ec-023290b2395b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.5544136} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.262532315Z"}]},"request_id":"5943c509-cf47-459e-ad28-68af2b5541ea","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.5560083} 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":"90d4eda0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:56656","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} 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":"90d53bc0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:56656","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.212355,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"32b4e3cc-f654-4674-9415-4ae0dcf811f0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.559234} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"90d5b0f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":29}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0653dfdc-d960-4012-962a-8821661d678f#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0653dfdc-d960-4012-962a-8821661d678f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"00125b04-21cb-425d-b67c-a0289e215ed4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.5654073} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d88cb315-b74b-4cf7-9327-5d8f0488c6e8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.5659714} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d? 200 43ms","method":"GET","requestID":"90d4eda0-015b-11ef-b963-057e09d3e358","responseTime":43,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"caf6fc78b787187c75a89b68e5be145e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":29}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/03a546bb-abbe-482c-8224-34eca8dea53b? 200 42ms","method":"GET","requestID":"90d53bc0-015b-11ef-b963-057e09d3e358","responseTime":42,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling 200 42ms","method":"POST","requestID":"90d5b0f0-015b-11ef-b963-057e09d3e358","responseTime":42,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"66c6e2dd-6855-4636-9673-345eaf22b7fa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.5901215} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.377919,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","rebac_allow":false,"scope_allow":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":"90dd03f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 218ms","method":"POST","requestID":"caf6fc78b787187c75a89b68e5be145e","responseTime":218,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.225","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"caf6fc78b787187c75a89b68e5be145e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling 200 14ms","method":"POST","requestID":"90dd03f0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06c21508-8e07-4e4f-baf6-57f67912aaa8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.5977602} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.698593,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","rebac_allow":false,"scope_allow":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":"90ddee50-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2c876ce2eacef402adf34b38a1cfb033","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/03a546bb-abbe-482c-8224-34eca8dea53b/signaling 200 19ms","method":"POST","requestID":"90ddee50-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7550d755-0864-40ff-89e2-d761cfd1469d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.6105475} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.333794,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2c876ce2eacef402adf34b38a1cfb033"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.716429,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","rebac_allow":false,"scope_allow":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":"90e01130-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.214882196Z"}]},"request_id":"22999fff-d1a2-4733-a114-44e39f24de8b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.61658} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/03a546bb-abbe-482c-8224-34eca8dea53b/signaling 200 14ms","method":"POST","requestID":"90e01130-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b/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":"2c876ce2eacef402adf34b38a1cfb033"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"8c448330-6414-41c3-b314-03d845ae4680"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"6183902f-d3e5-412d-8090-c90a889154b4"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"d5f54034-f965-4b09-ada0-5252c8dcc1d0"}]},"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/03a546bb-abbe-482c-8224-34eca8dea53b"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d? 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":"2c876ce2eacef402adf34b38a1cfb033"} device-1 | {"level":"info","message":"GET /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d? 200 16ms","method":"GET","requestID":"2c876ce2eacef402adf34b38a1cfb033","responseTime":16,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.929738,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"90e2a940-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4a24a68c6adf9abfa2bb1e87df738a55","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.739503,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a24a68c6adf9abfa2bb1e87df738a55"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:43.262532315Z"}]},"request_id":"e3fb8b35-af7a-45da-a7a8-d08ca23f130a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.6384993} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a24a68c6adf9abfa2bb1e87df738a55"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"860f991d-23db-465b-b50b-403365f620c2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.640094} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd257381-b1df-41a7-a422-9417eddfcb64","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.640291} 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":"90e2a940-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/03a546bb-abbe-482c-8224-34eca8dea53b? 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":"4a24a68c6adf9abfa2bb1e87df738a55"} device-1 | {"level":"info","message":"GET /devices/03a546bb-abbe-482c-8224-34eca8dea53b? 200 16ms","method":"GET","requestID":"4a24a68c6adf9abfa2bb1e87df738a55","responseTime":16,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b?"} 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/4f910678-8a20-4d55-beff-0f9bbb66adf7'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7'"} 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":"90e2a940-015b-11ef-b963-057e09d3e358","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"4f910678-8a20-4d55-beff-0f9bbb66adf7","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4f64a2ee-fe4e-4e60-9a21-094a96d8565e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.6857333} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.902809,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"90ebf810-015b-11ef-b963-057e09d3e358"},"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/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling 200 10ms","method":"POST","requestID":"90ebf810-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f9d77553-c864-46f0-b5d3-004bdd05e752","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.6982162} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.803147,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","rebac_allow":false,"scope_allow":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":"90edccd0-015b-11ef-b963-057e09d3e358"},"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/4f910678-8a20-4d55-beff-0f9bbb66adf7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4f910678-8a20-4d55-beff-0f9bbb66adf7","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"POST /devices/03a546bb-abbe-482c-8224-34eca8dea53b/signaling 200 14ms","method":"POST","requestID":"90edccd0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d0951f34290b0e46651d5653689ee6e0","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/03a546bb-abbe-482c-8224-34eca8dea53b"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"d0951f34290b0e46651d5653689ee6e0","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"d0951f34290b0e46651d5653689ee6e0"} device-1 | {"data":{"peerconnection":"4f910678-8a20-4d55-beff-0f9bbb66adf7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4f910678-8a20-4d55-beff-0f9bbb66adf7","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/4f910678-8a20-4d55-beff-0f9bbb66adf7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4f910678-8a20-4d55-beff-0f9bbb66adf7","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":"2998e10258720266bceff68974b9d315","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4f910678-8a20-4d55-beff-0f9bbb66adf7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"393a03fa-bf50-4d52-a98b-c28e613e94e2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.7743924} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.289319,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7","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":"90f96590-015b-11ef-b963-057e09d3e358"},"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/4f910678-8a20-4d55-beff-0f9bbb66adf7 200 10ms","method":"GET","requestID":"90f96590-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"2998e10258720266bceff68974b9d315","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"2998e10258720266bceff68974b9d315"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e952404b-7f23-4be1-a6bf-1332b053db45","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.80648} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.633678,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"90fe4790-015b-11ef-b963-057e09d3e358"},"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/03a546bb-abbe-482c-8224-34eca8dea53b/signaling 200 11ms","method":"POST","requestID":"90fe4790-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3a33ad5f-6ac8-400d-b472-f9932d9c8b06","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867825.818023} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.489025,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"91001c50-015b-11ef-b963-057e09d3e358"},"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/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling 200 10ms","method":"POST","requestID":"91001c50-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6f05858fbb69b392102f8ccd89623297","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0653dfdc-d960-4012-962a-8821661d678f"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.075273,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"6f05858fbb69b392102f8ccd89623297"},"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/0653dfdc-d960-4012-962a-8821661d678f"} gateway-1 | {"time_local":"23/Apr/2024:10:23:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0653dfdc-d960-4012-962a-8821661d678f HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6f05858fbb69b392102f8ccd89623297"} experiment-1 | {"level":"info","message":"GET /experiments/0653dfdc-d960-4012-962a-8821661d678f 200 19ms","method":"GET","requestID":"6f05858fbb69b392102f8ccd89623297","responseTime":19,"status":200,"url":"/experiments/0653dfdc-d960-4012-962a-8821661d678f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e9a965c92b42b06f38ef42ed41fa8106","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0653dfdc-d960-4012-962a-8821661d678f"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.131223,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"e9a965c92b42b06f38ef42ed41fa8106"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.156196,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867825,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNX0.K8AKYd3c620Sj3L_GG_SHjjMerMbXW_D745LsxQFqxg"} 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":"911e0490-015b-11ef-b963-057e09d3e358"},"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/4f910678-8a20-4d55-beff-0f9bbb66adf7' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4f910678-8a20-4d55-beff-0f9bbb66adf7","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":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4f910678-8a20-4d55-beff-0f9bbb66adf7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4f910678-8a20-4d55-beff-0f9bbb66adf7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"e3ec49a0-07d1-4d48-99d6-9186703e6338","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.0366247} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b51b6856-0a2b-47be-b776-acbb600aa6ab","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.0371735} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5701195b7806ff6cb290c5195e9aa322","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":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c52c6d44812d0891d4d8940cef9ff1f0","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":"911e0490-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4f910678-8a20-4d55-beff-0f9bbb66adf7","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/4f910678-8a20-4d55-beff-0f9bbb66adf7 204 52ms","method":"DELETE","requestID":"911e0490-015b-11ef-b963-057e09d3e358","responseTime":52,"status":204,"url":"/peerconnections/4f910678-8a20-4d55-beff-0f9bbb66adf7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0653dfdc-d960-4012-962a-8821661d678f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03a546bb-abbe-482c-8224-34eca8dea53b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"95afa3b4-012e-4a1a-8130-a47c00b93374","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.099893} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.449321,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03a546bb-abbe-482c-8224-34eca8dea53b","object_type":"device","rebac_allow":false,"scope_allow":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":"912a87b0-015b-11ef-b963-057e09d3e358"},"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/03a546bb-abbe-482c-8224-34eca8dea53b/signaling 200 17ms","method":"POST","requestID":"912a87b0-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/03a546bb-abbe-482c-8224-34eca8dea53b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcc86f9bb-5644-4fdf-9265-73a514eb1d6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0bed90c1-739c-4057-82d9-02b7f1ffd3b8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.116727} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0653dfdc-d960-4012-962a-8821661d678f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0653dfdc-d960-4012-962a-8821661d678f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"bba427a5-4cad-401a-9c58-2771a1f3ae11","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.1167374} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1cc2665f-c0dd-4530-ab55-a0a89234c7a8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.117512} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.677335,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d","object_type":"device","rebac_allow":false,"scope_allow":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":"912d94f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","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":"e9a965c92b42b06f38ef42ed41fa8106"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":31}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling 200 15ms","method":"POST","requestID":"912d94f0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/cc86f9bb-5644-4fdf-9265-73a514eb1d6d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0653dfdc-d960-4012-962a-8821661d678f"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0653dfdc-d960-4012-962a-8821661d678f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.201","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9a965c92b42b06f38ef42ed41fa8106"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1862","request_time":"2.368","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b1d5a062cec3c6a2289c9dcf90b823ac"} experiment-1 | {"level":"info","message":"DELETE /experiments/0653dfdc-d960-4012-962a-8821661d678f 204 197ms","method":"DELETE","requestID":"e9a965c92b42b06f38ef42ed41fa8106","responseTime":198,"status":204,"url":"/experiments/0653dfdc-d960-4012-962a-8821661d678f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 154ms","method":"POST","requestID":"5701195b7806ff6cb290c5195e9aa322","responseTime":154,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"5701195b7806ff6cb290c5195e9aa322"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"c52c6d44812d0891d4d8940cef9ff1f0","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"c52c6d44812d0891d4d8940cef9ff1f0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7087ddd6a20ede1860aa23c2a1cbf792","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1944","request_time":"0.912","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f4071253ee51c48daefaeaeda6262b29"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.86573,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"7087ddd6a20ede1860aa23c2a1cbf792"},"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/cc86f9bb-5644-4fdf-9265-73a514eb1d6d' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bc2d0966-870c-44b2-bca7-efa04f73b262","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.216016} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7087ddd6a20ede1860aa23c2a1cbf792"},"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/03a546bb-abbe-482c-8224-34eca8dea53b' 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e8a1e741-1d8b-4cf1-b95d-0596b7767a2f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.2211308} 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":"7087ddd6a20ede1860aa23c2a1cbf792"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"b1b78724-eb10-4e38-966a-35ba055bdc30","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.233264} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3ddafcab-2e15-49a5-afae-fd7d567f2a05","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.2334423} 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":"7087ddd6a20ede1860aa23c2a1cbf792"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.233242240Z"}]},"request_id":"e0c7e801-4e1c-4ece-b17e-65d5bdea0e5f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.2382138} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7087ddd6a20ede1860aa23c2a1cbf792"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +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":"7087ddd6a20ede1860aa23c2a1cbf792"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"7087ddd6a20ede1860aa23c2a1cbf792","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2a615159e6cf74c2d349d8dbef251b5a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.707725,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"2a615159e6cf74c2d349d8dbef251b5a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d54713eb-7e6c-4f44-b117-8884016b03bb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.262526} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a615159e6cf74c2d349d8dbef251b5a"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"00b988b5-d091-4937-a7d8-054062763fe0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.2675195} 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":"2a615159e6cf74c2d349d8dbef251b5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"5400366a-daba-4e25-aad5-6c460a77c139","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.2755287} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8dc09527-b501-447e-9dcc-3ac88a60b9ec","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.2757978} 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":"2a615159e6cf74c2d349d8dbef251b5a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.275503406Z"}]},"request_id":"5b61b798-be59-4ad2-a895-4f892843854f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.2803342} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a615159e6cf74c2d349d8dbef251b5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2a615159e6cf74c2d349d8dbef251b5a"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"2a615159e6cf74c2d349d8dbef251b5a","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"504549ebe45ea29d1246f864ac99e07b","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8390b6db35cb168a2762913e07f00afb","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:39874","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.417972,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"504549ebe45ea29d1246f864ac99e07b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.013682,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"8390b6db35cb168a2762913e07f00afb"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.275503406Z"}]},"request_id":"5178480d-e872-4a08-ae69-256523bb88d8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.765433} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"504549ebe45ea29d1246f864ac99e07b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.233242240Z"}]},"request_id":"36e958e7-ff12-45c4-8f36-de4a4617a697","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.7659097} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8390b6db35cb168a2762913e07f00afb"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"98dfaa30-af1d-4942-8a64-f61972bceaec","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.7706783} 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":"504549ebe45ea29d1246f864ac99e07b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1105623f-8719-4bed-a949-5b7b140c8ad2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.774375} 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":"8390b6db35cb168a2762913e07f00afb"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.233242240Z"}]},"request_id":"ad931e65-3914-44ff-8b3a-61ac967ff432","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.7772527} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8390b6db35cb168a2762913e07f00afb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":1}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a 200 26ms","method":"PATCH","requestID":"8390b6db35cb168a2762913e07f00afb","responseTime":26,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.032","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8390b6db35cb168a2762913e07f00afb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bf2eb457c9e107f88b08ec59c279b26d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702621,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"bf2eb457c9e107f88b08ec59c279b26d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.275503406Z"}]},"request_id":"e6cdb8b2-095b-4f12-8360-7f6d1c4f0b36","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.7912636} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"504549ebe45ea29d1246f864ac99e07b"},"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/984b8085-c9be-4b81-9f10-20e18a45e12e 200 42ms","method":"PATCH","requestID":"504549ebe45ea29d1246f864ac99e07b","responseTime":42,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/984b8085-c9be-4b81-9f10-20e18a45e12e HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"504549ebe45ea29d1246f864ac99e07b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d4d86964e897e3abe92ab37706657cfd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"bf2eb457c9e107f88b08ec59c279b26d"} device-1 | {"level":"info","message":"POST /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/websocket 200 18ms","method":"POST","requestID":"bf2eb457c9e107f88b08ec59c279b26d","responseTime":18,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/websocket"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70457,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"d4d86964e897e3abe92ab37706657cfd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/984b8085-c9be-4b81-9f10-20e18a45e12e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d4d86964e897e3abe92ab37706657cfd"} device-1 | {"level":"info","message":"POST /devices/984b8085-c9be-4b81-9f10-20e18a45e12e/websocket 200 12ms","method":"POST","requestID":"d4d86964e897e3abe92ab37706657cfd","responseTime":12,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"381c7570e0247831cbaa65f0f44be113","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.722295,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"381c7570e0247831cbaa65f0f44be113"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.233242240Z"}]},"request_id":"6a656437-7655-43e5-9fb7-042bdfdb9124","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.8414006} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"381c7570e0247831cbaa65f0f44be113"},"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/34e2e670-c2e0-48bd-aeda-4459f567e51a? 200 15ms","method":"GET","requestID":"381c7570e0247831cbaa65f0f44be113","responseTime":15,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a? 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":"381c7570e0247831cbaa65f0f44be113"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eec4cb2c1b6a7d4803871bb2a68715f0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.66802,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"eec4cb2c1b6a7d4803871bb2a68715f0"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.275503406Z"}]},"request_id":"693219f3-26c0-412f-aad2-ea412d8a79be","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.8639655} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eec4cb2c1b6a7d4803871bb2a68715f0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/984b8085-c9be-4b81-9f10-20e18a45e12e? 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":"eec4cb2c1b6a7d4803871bb2a68715f0"} device-1 | {"level":"info","message":"GET /devices/984b8085-c9be-4b81-9f10-20e18a45e12e? 200 12ms","method":"GET","requestID":"eec4cb2c1b6a7d4803871bb2a68715f0","responseTime":12,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f278c345e04066d891fbd8c748b0112f","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:39874","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.158034,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"f278c345e04066d891fbd8c748b0112f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"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:39874","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.171434,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"91ab9e90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.600236,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91abecb0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.233242240Z"}]},"request_id":"b97178c3-2313-4bdf-8b5a-f68e2ce1e361","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.950225} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91ab9e90-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.275503406Z"}]},"request_id":"a95bc474-1d1b-41fb-af59-3b05533a9cb6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867826.9511824} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91abecb0-015b-11ef-b963-057e09d3e358"},"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/34e2e670-c2e0-48bd-aeda-4459f567e51a? 200 22ms","method":"GET","requestID":"91ab9e90-015b-11ef-b963-057e09d3e358","responseTime":22,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/984b8085-c9be-4b81-9f10-20e18a45e12e? 200 23ms","method":"GET","requestID":"91abecb0-015b-11ef-b963-057e09d3e358","responseTime":23,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"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:39874","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.211189,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"91b86fd0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723866,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"91b8bdf0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.511746,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40c9c26c-4d9a-4d8f-80b4-bcd81dbcdd36","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.036307} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","rebac_allow":false,"scope_allow":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":"91b93320-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.233242240Z"}]},"request_id":"8b854665-a82d-4b61-a092-730b28f6c3b8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0401444} 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":"91b86fd0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.275503406Z"}]},"request_id":"bee9d4f0-4606-4a44-8839-2d74eb619d53","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0430238} device-1 | {"level":"info","message":"POST /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling 200 18ms","method":"POST","requestID":"91b93320-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/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":"91b8bdf0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7a863bb2-3e17-4f45-a690-e85149090bb9#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7a863bb2-3e17-4f45-a690-e85149090bb9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"7260af73-02a6-4ab7-8a3c-d1ede4cf923c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0473397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"17a81d26-f879-4c61-8d76-c98e89e45c68","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0475984} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a? 200 29ms","method":"GET","requestID":"91b86fd0-015b-11ef-b963-057e09d3e358","responseTime":29,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a?"} 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":"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":"f278c345e04066d891fbd8c748b0112f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/984b8085-c9be-4b81-9f10-20e18a45e12e? 200 27ms","method":"GET","requestID":"91b8bdf0-015b-11ef-b963-057e09d3e358","responseTime":27,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"378035bd-c861-4af2-ac04-b619fdbe3819","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0513191} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.355706,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"91bc6770-015b-11ef-b963-057e09d3e358"},"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/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling 200 9ms","method":"POST","requestID":"91bc6770-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"785","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f278c345e04066d891fbd8c748b0112f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 186ms","method":"POST","requestID":"f278c345e04066d891fbd8c748b0112f","responseTime":186,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"516351be-acc0-4a91-963c-c6a3b31b3e9c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0645003} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.721936,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM","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":"91bdee10-015b-11ef-b963-057e09d3e358"},"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":"a5a0c6dbc0639b95b24fafe1fc7bd5dd","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/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling 200 14ms","method":"POST","requestID":"91bdee10-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645794,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867827,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5a0c6dbc0639b95b24fafe1fc7bd5dd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8f2607c2-ade0-4ab7-8499-8311982fbed6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0781882} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.233242240Z"}]},"request_id":"0362c816-455f-48c8-a825-89e4ff13c639","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.078613} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5a0c6dbc0639b95b24fafe1fc7bd5dd"},"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:39874","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.721157,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"91c05f10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a? 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":"a5a0c6dbc0639b95b24fafe1fc7bd5dd"} device-1 | {"level":"info","message":"GET /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a? 200 16ms","method":"GET","requestID":"a5a0c6dbc0639b95b24fafe1fc7bd5dd","responseTime":16,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling 200 13ms","method":"POST","requestID":"91c05f10-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"8faa84c4-9a9a-471b-9023-c7860d0ae1bb"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"37d2faef-f150-4ab9-8981-197ccd46aef4"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"fa3524d5-6e79-4453-99bf-0d98509b0faa"}]},"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/34e2e670-c2e0-48bd-aeda-4459f567e51a"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"830033ab25d07de9379979e45b0a8a95","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.606706,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867826,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyNn0.9EBAV6lZ1LDEsV7ocXGxjp45P_ZSBYToSN_PuS37UEk"} 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":"91c2d010-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.600914,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867827,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM"} 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":"830033ab25d07de9379979e45b0a8a95"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:46.275503406Z"}]},"request_id":"d937efeb-ce82-4a9b-b9e7-49c18b715e2b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.0996175} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"830033ab25d07de9379979e45b0a8a95"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/984b8085-c9be-4b81-9f10-20e18a45e12e? 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":"830033ab25d07de9379979e45b0a8a95"} device-1 | {"level":"info","message":"GET /devices/984b8085-c9be-4b81-9f10-20e18a45e12e? 200 13ms","method":"GET","requestID":"830033ab25d07de9379979e45b0a8a95","responseTime":13,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"f1673971-2f3a-4221-b37b-5839ad8e143a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.1045327} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2a0f6f9a-85b5-4e04-8400-e7eeb6313e19","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.104839} 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":"91c2d010-015b-11ef-b963-057e09d3e358"},"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/12be4de8-8025-4ed9-88f8-3da363835a52'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"91c2d010-015b-11ef-b963-057e09d3e358","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","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/12be4de8-8025-4ed9-88f8-3da363835a52' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","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)"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Successfully created peerconnections for experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4f21cdd6abe39d2dc0e953580f4f852a","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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/34e2e670-c2e0-48bd-aeda-4459f567e51a"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52"}}},"level":"info","message":"received a callback"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0850267a-2669-4d00-9603-f401a527122b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.1827807} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.930808,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"4f21cdd6abe39d2dc0e953580f4f852a","responseTime":8,"status":200,"url":"/callbacks/experiment"} 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":"91d03d90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"4f21cdd6abe39d2dc0e953580f4f852a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling 200 14ms","method":"POST","requestID":"91d03d90-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c0971ca-9224-43d7-8cfd-cd6f7b4abf16","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.1973205} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.142766,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","rebac_allow":false,"scope_allow":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":"91d2ae90-015b-11ef-b963-057e09d3e358"},"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/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling 200 9ms","method":"POST","requestID":"91d2ae90-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","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/12be4de8-8025-4ed9-88f8-3da363835a52' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","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":"c96ebf60b3501104efc6a16d5da34621","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/34e2e670-c2e0-48bd-aeda-4459f567e51a"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F12be4de8-8025-4ed9-88f8-3da363835a52","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"72a59b06-59d0-48d8-a064-ea435a69cb25","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.230376} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.419194,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52","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":"91d79090-015b-11ef-b963-057e09d3e358"},"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/12be4de8-8025-4ed9-88f8-3da363835a52 200 10ms","method":"GET","requestID":"91d79090-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 35ms","method":"POST","requestID":"c96ebf60b3501104efc6a16d5da34621","responseTime":35,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"c96ebf60b3501104efc6a16d5da34621"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"513d616c-66c6-4372-9efd-0b7cbcd396d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.2605815} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.720701,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"91dc4b80-015b-11ef-b963-057e09d3e358"},"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/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling 200 11ms","method":"POST","requestID":"91dc4b80-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"45f847cc-85ae-45bc-9892-4ff7b9234e33","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.2738516} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.69312,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"91de4750-015b-11ef-b963-057e09d3e358"},"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/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling 200 9ms","method":"POST","requestID":"91de4750-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e455d47cb9ea8eadfa526dceff6ca113","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.854216,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867827,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM"} 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":"e455d47cb9ea8eadfa526dceff6ca113"},"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/7a863bb2-3e17-4f45-a690-e85149090bb9"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7a863bb2-3e17-4f45-a690-e85149090bb9 HTTP/1.1","status": "200","body_bytes_sent":"858","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e455d47cb9ea8eadfa526dceff6ca113"} experiment-1 | {"level":"info","message":"GET /experiments/7a863bb2-3e17-4f45-a690-e85149090bb9 200 17ms","method":"GET","requestID":"e455d47cb9ea8eadfa526dceff6ca113","responseTime":17,"status":200,"url":"/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e9f93ee10c362124dfeb045b536de358","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.212759,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867827,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM"} 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":"e9f93ee10c362124dfeb045b536de358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.229425,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867827,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM"} 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":"91faa8f0-015b-11ef-b963-057e09d3e358"},"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/12be4de8-8025-4ed9-88f8-3da363835a52' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F12be4de8-8025-4ed9-88f8-3da363835a52': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F12be4de8-8025-4ed9-88f8-3da363835a52","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"ff893ac6-4c91-47f9-a1ec-e53cea8092e0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.4785526} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4fede441-0611-442c-92e9-3a073ceac862","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.4788408} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"78867728516364b384987c2116e228dc","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 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":"91faa8f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"41ba4cbc977768705f0885c91c7c867a","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/34e2e670-c2e0-48bd-aeda-4459f567e51a"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"12be4de8-8025-4ed9-88f8-3da363835a52","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/12be4de8-8025-4ed9-88f8-3da363835a52 204 63ms","method":"DELETE","requestID":"91faa8f0-015b-11ef-b963-057e09d3e358","responseTime":63,"status":204,"url":"/peerconnections/12be4de8-8025-4ed9-88f8-3da363835a52"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34e2e670-c2e0-48bd-aeda-4459f567e51a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"422741e1-2084-49f6-b1e9-2964def59d91","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.55217} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.029648,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a","object_type":"device","rebac_allow":false,"scope_allow":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":"92086490-015b-11ef-b963-057e09d3e358"},"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/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling 200 15ms","method":"POST","requestID":"92086490-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/34e2e670-c2e0-48bd-aeda-4459f567e51a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7a863bb2-3e17-4f45-a690-e85149090bb9': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7a863bb2-3e17-4f45-a690-e85149090bb9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"d27ce796-d174-4cb9-8167-fd835b933dd4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.5661323} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"00ac5fcb-7dd8-45d5-b4dc-1e1884c845d2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.5664232} 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":"e9f93ee10c362124dfeb045b536de358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F984b8085-c9be-4b81-9f10-20e18a45e12e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"61604398-cb65-43c8-8b2f-3bfff2b0c505","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.5697706} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.548312,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e","object_type":"device","rebac_allow":false,"scope_allow":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":"920b23b0-015b-11ef-b963-057e09d3e358"},"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/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling 200 14ms","method":"POST","requestID":"920b23b0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/984b8085-c9be-4b81-9f10-20e18a45e12e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7a863bb2-3e17-4f45-a690-e85149090bb9 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9f93ee10c362124dfeb045b536de358"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1944","request_time":"0.813","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a73fce17dc0b6f08f8abdb117c3b7d05"} experiment-1 | {"level":"info","message":"DELETE /experiments/7a863bb2-3e17-4f45-a690-e85149090bb9 204 189ms","method":"DELETE","requestID":"e9f93ee10c362124dfeb045b536de358","responseTime":190,"status":204,"url":"/experiments/7a863bb2-3e17-4f45-a690-e85149090bb9"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1944","request_time":"0.824","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e1da51925d4254036765641004455025"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 150ms","method":"POST","requestID":"78867728516364b384987c2116e228dc","responseTime":150,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"78867728516364b384987c2116e228dc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 150ms","method":"POST","requestID":"41ba4cbc977768705f0885c91c7c867a","responseTime":150,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.155","http_referrer":"","http_user_agent":"node-fetch","requestID":"41ba4cbc977768705f0885c91c7c867a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7371134c0ab2d13b09f0a196c5c4151d","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/34e2e670-c2e0-48bd-aeda-4459f567e51a' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.969176,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867827,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/984b8085-c9be-4b81-9f10-20e18a45e12e' closed"} 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":"7371134c0ab2d13b09f0a196c5c4151d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d8bdcfd2-9158-4472-917a-20483ae2452a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.6562157} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7371134c0ab2d13b09f0a196c5c4151d"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"52276443-c5bf-4909-9ffe-0f1ca21b8036","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.6634414} 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":"7371134c0ab2d13b09f0a196c5c4151d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"6fa28fdc-5c07-4de7-b488-95eaeb735cdd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.6748295} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8befc5b2-ca3f-4c6e-bc4b-514df592af78","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.6749666} 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":"7371134c0ab2d13b09f0a196c5c4151d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.674801800Z"}]},"request_id":"a7bc34fc-6c5c-4fc0-b225-3e1f223657d4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.6809938} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7371134c0ab2d13b09f0a196c5c4151d"},"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 48ms","method":"POST","requestID":"7371134c0ab2d13b09f0a196c5c4151d","responseTime":48,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7371134c0ab2d13b09f0a196c5c4151d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c085498b978301733e2e811b83d9db29","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.78565,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867827,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyN30.5XauiqAfhT3APvz75Ipm9bh5gOTb9QcJkJYJazLuXuM"} 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":"c085498b978301733e2e811b83d9db29"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e00a3df8-4c76-4ac3-b5f2-2ed559dfeed2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.713141} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c085498b978301733e2e811b83d9db29"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04542e72-63f9-45b4-b681-0dac323bc3fd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.7189083} 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":"c085498b978301733e2e811b83d9db29"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"428c20a2-e9b9-4fe9-b0c1-1d014d806921","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.729783} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1eeef767-856b-404a-bf11-773377d15138","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.7300634} 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":"c085498b978301733e2e811b83d9db29"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.729763046Z"}]},"request_id":"884cf442-772a-4094-afb2-3e1f2fdac682","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867827.7352114} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c085498b978301733e2e811b83d9db29"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c085498b978301733e2e811b83d9db29"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"c085498b978301733e2e811b83d9db29","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 1ms","method":"GET","requestID":"e1ce52c8ba9ed66beb0a560d00111cd6","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/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":"e1ce52c8ba9ed66beb0a560d00111cd6"} device-1 | {"level":"info","message":"OPTIONS /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/websocket 200 1ms","method":"OPTIONS","requestID":"e1ce52c8ba9ed66beb0a560d00111cd6","responseTime":1,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a96bab6e2ee3d4d963e914530784022c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.387081,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a96bab6e2ee3d4d963e914530784022c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9bdc58002a8b380de347120ac1649ee5","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/45e763c2-2635-4837-a70a-621a01bf6cc2/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":"9bdc58002a8b380de347120ac1649ee5"} device-1 | {"level":"info","message":"OPTIONS /devices/45e763c2-2635-4837-a70a-621a01bf6cc2/websocket 200 1ms","method":"OPTIONS","requestID":"9bdc58002a8b380de347120ac1649ee5","responseTime":1,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c91c4b89883bc19f7a7a111f6f81e90b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.493714,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} 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":"c91c4b89883bc19f7a7a111f6f81e90b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a96bab6e2ee3d4d963e914530784022c"} device-1 | {"level":"info","message":"POST /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/websocket 200 47ms","method":"POST","requestID":"a96bab6e2ee3d4d963e914530784022c","responseTime":47,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/45e763c2-2635-4837-a70a-621a01bf6cc2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c91c4b89883bc19f7a7a111f6f81e90b"} device-1 | {"level":"info","message":"POST /devices/45e763c2-2635-4837-a70a-621a01bf6cc2/websocket 200 42ms","method":"POST","requestID":"c91c4b89883bc19f7a7a111f6f81e90b","responseTime":42,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d3779cfb8ac5b5b4e3e144fa8621f0d0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.218109,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} 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":"d3779cfb8ac5b5b4e3e144fa8621f0d0"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.674801800Z"}]},"request_id":"9ef95f89-1b2d-4906-a917-309eeb300499","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867829.7977679} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3779cfb8ac5b5b4e3e144fa8621f0d0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5? 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":"d3779cfb8ac5b5b4e3e144fa8621f0d0"} device-1 | {"level":"info","message":"GET /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5? 200 21ms","method":"GET","requestID":"d3779cfb8ac5b5b4e3e144fa8621f0d0","responseTime":21,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"238269c304566021a2a1116df91bb6a1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.363278,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"238269c304566021a2a1116df91bb6a1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.729763046Z"}]},"request_id":"44fed5f4-807a-48cb-a37e-836f0c54f459","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867829.8231366} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"238269c304566021a2a1116df91bb6a1"},"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/45e763c2-2635-4837-a70a-621a01bf6cc2? 200 18ms","method":"GET","requestID":"238269c304566021a2a1116df91bb6a1","responseTime":18,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/45e763c2-2635-4837-a70a-621a01bf6cc2? 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":"238269c304566021a2a1116df91bb6a1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e31a6efa9c2a06b43609634b98ded0b9","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:39874","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.509591,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","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":"e31a6efa9c2a06b43609634b98ded0b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"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:39874","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.117043,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"936f95b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.85877,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} 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":"936fe3d0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.674801800Z"}]},"request_id":"4d49afb1-fed8-4aff-bab0-e1e4cab7f1b3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867829.911105} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"936f95b0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.729763046Z"}]},"request_id":"b99dfb2a-8eff-4440-bb1b-53a68a386b20","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867829.9119823} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"936fe3d0-015b-11ef-b963-057e09d3e358"},"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/7a0a2c11-4595-450c-8f30-c0c88421a5b5? 200 21ms","method":"GET","requestID":"936f95b0-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/45e763c2-2635-4837-a70a-621a01bf6cc2? 200 20ms","method":"GET","requestID":"936fe3d0-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"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:39874","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.337046,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:49Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} 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":"937bcab0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.234904,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} 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":"937c18d0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.674801800Z"}]},"request_id":"ad986ab5-49ef-4c2c-9ddb-33f964c50e6f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867829.9993246} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.729763046Z"}]},"request_id":"19ad02b7-29f9-454a-b5d2-f8e5fb7aa4f5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0005076} 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":"937bcab0-015b-11ef-b963-057e09d3e358"},"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:56670","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} 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":"937c18d0-015b-11ef-b963-057e09d3e358"},"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:56670","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.089812,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1803a1ea-c0fa-4604-9d77-1f10c93e6a62","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0036461} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"937c66f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8f9ae98-eba0-49c5-a01d-b5456463de1c#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8f9ae98-eba0-49c5-a01d-b5456463de1c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"192fa40e-3fa9-414b-b3c8-1936dac9e3cd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0068717} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ba9aa755-8c5d-44ad-8e82-70983e0f24ce","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0071235} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"e31a6efa9c2a06b43609634b98ded0b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"GET /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5? 200 32ms","method":"GET","requestID":"937bcab0-015b-11ef-b963-057e09d3e358","responseTime":32,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/45e763c2-2635-4837-a70a-621a01bf6cc2? 200 32ms","method":"GET","requestID":"937c18d0-015b-11ef-b963-057e09d3e358","responseTime":32,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling 200 32ms","method":"POST","requestID":"937c66f0-015b-11ef-b963-057e09d3e358","responseTime":32,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"89d0e951-c836-4b33-87e4-67c917d8b3d8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0268857} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.547339,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e31a6efa9c2a06b43609634b98ded0b9"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","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 191ms","method":"POST","requestID":"e31a6efa9c2a06b43609634b98ded0b9","responseTime":191,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"93820c40-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e8eaa117-6041-4c8f-9fad-9175db5775a1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0292118} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.49906,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","rebac_allow":false,"scope_allow":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":"93828170-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"abaacb4d512c52892ba0829ddce22951","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling 200 17ms","method":"POST","requestID":"93820c40-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling 200 19ms","method":"POST","requestID":"93828170-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.000912,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867830,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"abaacb4d512c52892ba0829ddce22951"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4555a63a-af01-40ae-9da6-534bc39fdac0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0459456} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.692092,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"93851980-015b-11ef-b963-057e09d3e358"},"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/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling 200 10ms","method":"POST","requestID":"93851980-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.674801800Z"}]},"request_id":"5b585cd6-9bde-4b5d-b66b-a0e4a61fd273","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.051189} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"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":"f3ae88e3-d081-4e01-b694-52802a7a5a27"},{"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":"a76f6e61-e1b3-4899-a1ad-2f0f7f411e09"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d35489c4-d4fe-42fa-9b8d-8ab06e5add74"}]},"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/7a0a2c11-4595-450c-8f30-c0c88421a5b5"},{"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/45e763c2-2635-4837-a70a-621a01bf6cc2"}],"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":"abaacb4d512c52892ba0829ddce22951"},"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":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5? 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":"abaacb4d512c52892ba0829ddce22951"} device-1 | {"level":"info","message":"GET /devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5? 200 18ms","method":"GET","requestID":"abaacb4d512c52892ba0829ddce22951","responseTime":18,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.024357,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867829,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgyOX0.OYBo7mV1akrs4oZRcz2bgC8NewOM2ynlS8AzmEGuy8c"} 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":"93873c60-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"962f585f730868acb208a5d0f632b367","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.025257,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867830,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8"} 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":"962f585f730868acb208a5d0f632b367"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"6801e697-27ea-48e1-9137-267cfed96660","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0720615} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc6823bc-6707-4b90-b780-4eb8432eb9b7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0723884} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:47.729763046Z"}]},"request_id":"7f29e759-da11-4d0e-924f-438dbfe5b3d5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.0732882} 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":"93873c60-015b-11ef-b963-057e09d3e358"},"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 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"962f585f730868acb208a5d0f632b367"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/45e763c2-2635-4837-a70a-621a01bf6cc2? 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":"962f585f730868acb208a5d0f632b367"} device-1 | {"level":"info","message":"GET /devices/45e763c2-2635-4837-a70a-621a01bf6cc2? 200 17ms","method":"GET","requestID":"962f585f730868acb208a5d0f632b367","responseTime":17,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2?"} 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/73a4e9bc-b368-4df9-85e3-bbb118a60c43'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 53ms","method":"POST","requestID":"93873c60-015b-11ef-b963-057e09d3e358","responseTime":53,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6c14befd-4394-4b81-96cb-e866f5b6037a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.1457376} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.188994,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"939434b0-015b-11ef-b963-057e09d3e358"},"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/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling 200 12ms","method":"POST","requestID":"939434b0-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0f4b4768-79be-4973-ba40-4dc572b096ad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.1576} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.119543,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","rebac_allow":false,"scope_allow":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":"93965790-015b-11ef-b963-057e09d3e358"},"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/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling 200 8ms","method":"POST","requestID":"93965790-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"73a4e9bc-b368-4df9-85e3-bbb118a60c43","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":"6555f198a444e814a83e2458a66af98b","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/7a0a2c11-4595-450c-8f30-c0c88421a5b5"},{"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/45e763c2-2635-4837-a70a-621a01bf6cc2"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"6555f198a444e814a83e2458a66af98b","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"6555f198a444e814a83e2458a66af98b"} device-1 | {"data":{"peerconnection":"73a4e9bc-b368-4df9-85e3-bbb118a60c43","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"73a4e9bc-b368-4df9-85e3-bbb118a60c43","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/73a4e9bc-b368-4df9-85e3-bbb118a60c43' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"73a4e9bc-b368-4df9-85e3-bbb118a60c43","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":"ce6f8f0fd2c153fe35ebf4dcd9576969","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/7a0a2c11-4595-450c-8f30-c0c88421a5b5"},{"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/45e763c2-2635-4837-a70a-621a01bf6cc2"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F73a4e9bc-b368-4df9-85e3-bbb118a60c43","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c23cbe3-22ed-46c7-90a7-0dec85705efa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.39788} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.703171,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43","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":"93baa870-015b-11ef-b963-057e09d3e358"},"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/73a4e9bc-b368-4df9-85e3-bbb118a60c43 200 13ms","method":"GET","requestID":"93baa870-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 43ms","method":"POST","requestID":"ce6f8f0fd2c153fe35ebf4dcd9576969","responseTime":43,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.047","http_referrer":"","http_user_agent":"node-fetch","requestID":"ce6f8f0fd2c153fe35ebf4dcd9576969"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15dd1947-9bb2-4e94-a173-62612f01cf27","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.4349809} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.141812,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","rebac_allow":false,"scope_allow":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":"93c04dc0-015b-11ef-b963-057e09d3e358"},"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/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling 200 15ms","method":"POST","requestID":"93c04dc0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0bf52dc7-a28a-44db-b8bf-c6721e77eb10","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.4529023} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.405377,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","rebac_allow":false,"scope_allow":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":"93c2e5d0-015b-11ef-b963-057e09d3e358"},"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/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling 200 16ms","method":"POST","requestID":"93c2e5d0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7c26ab859a6c7394682a28d7570f4d07","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.965432,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867830,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8"} 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":"7c26ab859a6c7394682a28d7570f4d07"},"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/b8f9ae98-eba0-49c5-a01d-b5456463de1c"} experiment-1 | {"level":"info","message":"GET /experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c 200 16ms","method":"GET","requestID":"7c26ab859a6c7394682a28d7570f4d07","responseTime":16,"status":200,"url":"/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c26ab859a6c7394682a28d7570f4d07"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f847734dfda7eaa1e8e21a8056ce5c36","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.851144,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867830,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8"} 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":"f847734dfda7eaa1e8e21a8056ce5c36"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.305094,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867830,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8"} 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":"93cf1ad0-015b-11ef-b963-057e09d3e358"},"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/73a4e9bc-b368-4df9-85e3-bbb118a60c43' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"73a4e9bc-b368-4df9-85e3-bbb118a60c43","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F73a4e9bc-b368-4df9-85e3-bbb118a60c43': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F73a4e9bc-b368-4df9-85e3-bbb118a60c43","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"53b11fe2-0b8e-4eb9-8391-6a43563906c4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.5491931} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"056f9f5f-4d14-40c1-acfc-c71013669a04","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.5496504} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1505efd6646a9fa19c67f3202269263b","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":"93cf1ad0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5"},{"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/45e763c2-2635-4837-a70a-621a01bf6cc2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43"}}},"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":"c1e9c63f88db034c1ed432d7c64981e0","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/7a0a2c11-4595-450c-8f30-c0c88421a5b5"},{"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/45e763c2-2635-4837-a70a-621a01bf6cc2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"73a4e9bc-b368-4df9-85e3-bbb118a60c43","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/73a4e9bc-b368-4df9-85e3-bbb118a60c43 204 64ms","method":"DELETE","requestID":"93cf1ad0-015b-11ef-b963-057e09d3e358","responseTime":64,"status":204,"url":"/peerconnections/73a4e9bc-b368-4df9-85e3-bbb118a60c43"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a0a2c11-4595-450c-8f30-c0c88421a5b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c20c6cf-81ec-46d8-987a-c8505eeff997","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.621535} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.930815,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5","object_type":"device","rebac_allow":false,"scope_allow":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":"93dcaf60-015b-11ef-b963-057e09d3e358"},"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/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling 200 15ms","method":"POST","requestID":"93dcaf60-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8f9ae98-eba0-49c5-a01d-b5456463de1c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8f9ae98-eba0-49c5-a01d-b5456463de1c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"814eaefa-1293-4722-8d5f-60f43ae53fc2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.6320999} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac47dfa5-7470-49ba-b8b1-1029d6ffda41","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.632705} 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":"f847734dfda7eaa1e8e21a8056ce5c36"},"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:39874","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45e763c2-2635-4837-a70a-621a01bf6cc2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"25c53a9d-f8a4-4d02-a0c9-9b5665a854f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.6389344} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.154059,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45e763c2-2635-4837-a70a-621a01bf6cc2","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"93df6e80-015b-11ef-b963-057e09d3e358"},"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/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling 200 12ms","method":"POST","requestID":"93df6e80-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/45e763c2-2635-4837-a70a-621a01bf6cc2/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f847734dfda7eaa1e8e21a8056ce5c36"} experiment-1 | {"level":"info","message":"DELETE /experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c 204 187ms","method":"DELETE","requestID":"f847734dfda7eaa1e8e21a8056ce5c36","responseTime":187,"status":204,"url":"/experiments/b8f9ae98-eba0-49c5-a01d-b5456463de1c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"1505efd6646a9fa19c67f3202269263b","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"1505efd6646a9fa19c67f3202269263b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"c1e9c63f88db034c1ed432d7c64981e0","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"c1e9c63f88db034c1ed432d7c64981e0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"742ab1ff85e1dcd20eaca13b69bde20a","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2301","request_time":"0.948","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"251b971a71cf9ca64b98749c4b498e96"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2434","request_time":"0.967","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"39addf4ca1a2e2910c2ca96aa7bbf94e"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7a0a2c11-4595-450c-8f30-c0c88421a5b5' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.908244,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867830,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8"} 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":"742ab1ff85e1dcd20eaca13b69bde20a"},"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/45e763c2-2635-4837-a70a-621a01bf6cc2' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7df7dd64-7ded-4afb-8028-e711cfe87825","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7221034} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"742ab1ff85e1dcd20eaca13b69bde20a"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b503416c-6d93-4c80-826d-98ceb37373da","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7271736} 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":"742ab1ff85e1dcd20eaca13b69bde20a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"288d26e5-fe9a-4d38-8b5c-99d426774682","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7390919} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7053462e-386a-476a-985e-6147c7c5111e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7393122} 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":"742ab1ff85e1dcd20eaca13b69bde20a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.739072708Z"}]},"request_id":"5aa3febd-0933-464a-bb01-bb6d3489fe58","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.743325} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"742ab1ff85e1dcd20eaca13b69bde20a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"742ab1ff85e1dcd20eaca13b69bde20a","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"742ab1ff85e1dcd20eaca13b69bde20a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"081aabc7b8d488a9f94e470c6d472816","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.868481,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867830,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMH0.KUEYo8om8C7CPMBWb9dmlImEPGIdH9Lv3XeiydFkBe8"} 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":"081aabc7b8d488a9f94e470c6d472816"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"07af5b14-3b28-4fc7-a945-9b63326058e5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7723193} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"081aabc7b8d488a9f94e470c6d472816"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbab5fc6-7053-4741-968e-a071ee4a15ff","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7782485} 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":"081aabc7b8d488a9f94e470c6d472816"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"a2de507a-7774-4c51-81f7-af635e94c657","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7893448} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"537c8c37-4228-47f1-bab4-2598fbb0a3f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.789787} 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":"081aabc7b8d488a9f94e470c6d472816"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.789324782Z"}]},"request_id":"9f3ec3c8-9056-47ea-89a8-a51566bf449b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867830.7953236} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"081aabc7b8d488a9f94e470c6d472816"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"081aabc7b8d488a9f94e470c6d472816"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"081aabc7b8d488a9f94e470c6d472816","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":"edea41a3b0cbbc02b6b0e1ed493a3cda","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/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":"edea41a3b0cbbc02b6b0e1ed493a3cda"} device-1 | {"level":"info","message":"OPTIONS /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/websocket 200 1ms","method":"OPTIONS","requestID":"edea41a3b0cbbc02b6b0e1ed493a3cda","responseTime":1,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0a1a1a1c9fb91dba08aa29f3533da7f0","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"02a526f1ddeaf71dee5497e7257615a0","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.789883,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} gateway-1 | {"time_local":"23/Apr/2024:10:23:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/11f39817-9807-463f-af35-ec5b76694cb4/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":"02a526f1ddeaf71dee5497e7257615a0"} device-1 | {"level":"info","message":"OPTIONS /devices/11f39817-9807-463f-af35-ec5b76694cb4/websocket 200 1ms","method":"OPTIONS","requestID":"02a526f1ddeaf71dee5497e7257615a0","responseTime":1,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4/websocket"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} 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":"0a1a1a1c9fb91dba08aa29f3533da7f0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5e03d58d40f67678266be61892e4e26b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.283529,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e03d58d40f67678266be61892e4e26b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0a1a1a1c9fb91dba08aa29f3533da7f0"} device-1 | {"level":"info","message":"POST /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/websocket 200 46ms","method":"POST","requestID":"0a1a1a1c9fb91dba08aa29f3533da7f0","responseTime":46,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/11f39817-9807-463f-af35-ec5b76694cb4/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":"5e03d58d40f67678266be61892e4e26b"} device-1 | {"level":"info","message":"POST /devices/11f39817-9807-463f-af35-ec5b76694cb4/websocket 200 41ms","method":"POST","requestID":"5e03d58d40f67678266be61892e4e26b","responseTime":41,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a82e4d886f94cf3682bce1013f545c35","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.885026,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a82e4d886f94cf3682bce1013f545c35"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.739072708Z"}]},"request_id":"f3da1af0-a6cd-4be1-9963-9a07bd995366","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867832.823647} 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":"a82e4d886f94cf3682bce1013f545c35"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/11f39817-9807-463f-af35-ec5b76694cb4? 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":"a82e4d886f94cf3682bce1013f545c35"} device-1 | {"level":"info","message":"GET /devices/11f39817-9807-463f-af35-ec5b76694cb4? 200 19ms","method":"GET","requestID":"a82e4d886f94cf3682bce1013f545c35","responseTime":19,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0405c93603089eb940df9b2c18fbcf16","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281354,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0405c93603089eb940df9b2c18fbcf16"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.789324782Z"}]},"request_id":"afa032a1-4c79-46b2-8516-29b23a2aab23","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867832.8482358} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0405c93603089eb940df9b2c18fbcf16"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104? 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":"0405c93603089eb940df9b2c18fbcf16"} device-1 | {"level":"info","message":"GET /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104? 200 17ms","method":"GET","requestID":"0405c93603089eb940df9b2c18fbcf16","responseTime":17,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b5555c18b3e188ca4209ce90be3eccd5","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:39874","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.030442,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} 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":"b5555c18b3e188ca4209ce90be3eccd5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"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:39874","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.863094,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"953adfd0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.953618,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"953b2df0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.739072708Z"}]},"request_id":"c96bffb8-5371-47ec-a2f6-cdb84fbb31a3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867832.9199963} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"953adfd0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.789324782Z"}]},"request_id":"589ae9f3-8508-41e2-bd48-a5533258416d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867832.92116} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"953b2df0-015b-11ef-b963-057e09d3e358"},"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/11f39817-9807-463f-af35-ec5b76694cb4? 200 19ms","method":"GET","requestID":"953adfd0-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104? 200 18ms","method":"GET","requestID":"953b2df0-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"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:39874","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.975276,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.01502,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} 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":"954762f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} 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":"9547b110-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.016852,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5cdf21f3-0440-430d-a766-dc9f559e5700","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0014977} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","rebac_allow":false,"scope_allow":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":"9547d820-015b-11ef-b963-057e09d3e358"},"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/11f39817-9807-463f-af35-ec5b76694cb4/signaling 200 15ms","method":"POST","requestID":"9547d820-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.739072708Z"}]},"request_id":"46f0c6f9-e91c-488c-82aa-1d707d5246a7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.008281} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"954762f0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.789324782Z"}]},"request_id":"d5d7b2b9-d5f6-4b1d-a755-66e83a4d4555","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0100894} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9547b110-015b-11ef-b963-057e09d3e358"},"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/11f39817-9807-463f-af35-ec5b76694cb4? 200 29ms","method":"GET","requestID":"954762f0-015b-11ef-b963-057e09d3e358","responseTime":29,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104? 200 28ms","method":"GET","requestID":"9547b110-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"d16f716d-e720-4eb9-99aa-a1a2679040e1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.016377} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e35da5b9-0a42-4098-8810-98fb16c2ae68","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0167751} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"28291723-d21d-409f-b49d-a2702aa1e291","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0200045} 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":"b5555c18b3e188ca4209ce90be3eccd5"},"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:39874","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.609301,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","rebac_allow":false,"scope_allow":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":"954ae560-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling 200 22ms","method":"POST","requestID":"954ae560-015b-11ef-b963-057e09d3e358","responseTime":22,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 178ms","method":"POST","requestID":"b5555c18b3e188ca4209ce90be3eccd5","responseTime":178,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b5555c18b3e188ca4209ce90be3eccd5"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"165f856d-aa1e-497f-8760-e77e911fbea8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0370665} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.255663,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","rebac_allow":false,"scope_allow":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":"954c9310-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a64819cb29a55fc7905a0ff454af4cc7","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/11f39817-9807-463f-af35-ec5b76694cb4/signaling 200 21ms","method":"POST","requestID":"954c9310-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.598769,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867833,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8"} 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":"a64819cb29a55fc7905a0ff454af4cc7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"794c4fe6-dae7-4610-b372-34eac2d02390","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0573545} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.208154,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"95501580-015b-11ef-b963-057e09d3e358"},"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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling 200 14ms","method":"POST","requestID":"95501580-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"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":"a1500fe8-26c5-4866-818f-154992fd545d"},{"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":"f34926c3-2f13-4f2b-9138-c575953f0855"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e0e3171c-bced-4de8-aa69-4c57a1e6617a"}]},"level":"info","message":"Built pairwise service configurations"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.739072708Z"}]},"request_id":"9ccbb271-c19f-4009-a68a-da552faffcb9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.063546} 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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104"},{"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/11f39817-9807-463f-af35-ec5b76694cb4"}],"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":"a64819cb29a55fc7905a0ff454af4cc7"},"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":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/11f39817-9807-463f-af35-ec5b76694cb4? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a64819cb29a55fc7905a0ff454af4cc7"} device-1 | {"level":"info","message":"GET /devices/11f39817-9807-463f-af35-ec5b76694cb4? 200 22ms","method":"GET","requestID":"a64819cb29a55fc7905a0ff454af4cc7","responseTime":22,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.724874,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867832,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzMn0.oGtEP60eb0lZKfKDSIcNoV6mCUyySKD3trCsrBdL58s"} 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":"9552d4a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7cd872facb09997d48046653ede39f4d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.595665,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867833,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7cd872facb09997d48046653ede39f4d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"db3e3b15-750a-4102-a325-96549a4c5f26","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.082804} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cce2f54f-f15e-434b-9114-d29ca4bb3d7c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0830517} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:50.789324782Z"}]},"request_id":"e4cc3e02-d6e5-47aa-ad08-1808a412cadb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.0835674} 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":"9552d4a0-015b-11ef-b963-057e09d3e358"},"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 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7cd872facb09997d48046653ede39f4d"},"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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104? 200 16ms","method":"GET","requestID":"7cd872facb09997d48046653ede39f4d","responseTime":16,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104? 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":"7cd872facb09997d48046653ede39f4d"} 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/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b'"} 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":"9552d4a0-015b-11ef-b963-057e09d3e358","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/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7d704f90-b1b7-4eb2-8a0b-54465ededc8c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.1336837} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.708964,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"955c4a80-015b-11ef-b963-057e09d3e358"},"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/11f39817-9807-463f-af35-ec5b76694cb4/signaling 200 11ms","method":"POST","requestID":"955c4a80-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d5fe276f-172f-4830-afb8-4b5bde2aa162","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.1461487} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.718535,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"955e4650-015b-11ef-b963-057e09d3e358"},"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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling 200 9ms","method":"POST","requestID":"955e4650-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","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":"7627993f3bd5b60a8178d8e1d206a626","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104"},{"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/11f39817-9807-463f-af35-ec5b76694cb4"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"7627993f3bd5b60a8178d8e1d206a626","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"7627993f3bd5b60a8178d8e1d206a626"} device-1 | {"data":{"peerconnection":"ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","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/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","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":"69fbb95ebdb9904c121d0e2abfa26176","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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104"},{"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/11f39817-9807-463f-af35-ec5b76694cb4"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fea6b3209-21b4-43a7-a866-cadb2ceb6c1b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"70ed4f6e-2c2b-43ee-a223-37d1d9831419","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.358973} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.864823,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","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":"957e9f90-015b-11ef-b963-057e09d3e358"},"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/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b 200 11ms","method":"GET","requestID":"957e9f90-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"69fbb95ebdb9904c121d0e2abfa26176","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"69fbb95ebdb9904c121d0e2abfa26176"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"09edec13-d7c0-4a51-b0f7-4025b9248e14","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.390342} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.737522,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"95838190-015b-11ef-b963-057e09d3e358"},"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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling 200 11ms","method":"POST","requestID":"95838190-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"26209e39-8600-43e9-8187-102256c62533","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.40357} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.720221,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"95857d60-015b-11ef-b963-057e09d3e358"},"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/11f39817-9807-463f-af35-ec5b76694cb4/signaling 200 11ms","method":"POST","requestID":"95857d60-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3a0718f7a7089572f405f508b314c1d5","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.309772,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867833,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8"} 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":"3a0718f7a7089572f405f508b314c1d5"},"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/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a0718f7a7089572f405f508b314c1d5"} experiment-1 | {"level":"info","message":"GET /experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd 200 15ms","method":"GET","requestID":"3a0718f7a7089572f405f508b314c1d5","responseTime":15,"status":200,"url":"/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"627d394fae47c7593461077d863bee8a","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.04722,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867833,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8"} 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":"627d394fae47c7593461077d863bee8a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.826909,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867833,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8"} 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":"95942360-015b-11ef-b963-057e09d3e358"},"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/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","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 0ms","method":"GET","requestID":"c98e89b689087ee2d359cc0b046dc8a7","responseTime":0,"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":"e1f2d7e4d6095ab48292567e92cfbcdf","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":"closed","url":"http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104"},{"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/11f39817-9807-463f-af35-ec5b76694cb4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fea6b3209-21b4-43a7-a866-cadb2ceb6c1b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fea6b3209-21b4-43a7-a866-cadb2ceb6c1b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"e8298edb-f664-45c5-870e-e84363e5d77d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.5229146} 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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104"},{"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/11f39817-9807-463f-af35-ec5b76694cb4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b"}}},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bee4ac98-6f1d-4cc4-9220-a1d10a8b18b4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.523433} 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":"95942360-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} device-1 | {"data":{"peerconnection":"ea6b3209-21b4-43a7-a866-cadb2ceb6c1b","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/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b 204 52ms","method":"DELETE","requestID":"95942360-015b-11ef-b963-057e09d3e358","responseTime":52,"status":204,"url":"/peerconnections/ea6b3209-21b4-43a7-a866-cadb2ceb6c1b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feac29e49-ffb4-43ff-a8d1-34f2c4ae6104","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1ff00f2-bc97-48d6-b967-9fa1fdc0f6a1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.5710702} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.329081,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"959ef8d0-015b-11ef-b963-057e09d3e358"},"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/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling 200 13ms","method":"POST","requestID":"959ef8d0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"190d9d2e-e333-427b-ac41-9d4cbf90b89b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.580887} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"867a8b09-a48d-4c40-a828-556ad15de785","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.5811062} 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":"627d394fae47c7593461077d863bee8a"},"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:39874","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F11f39817-9807-463f-af35-ec5b76694cb4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46ea2107-a309-425a-90b4-221de8913990","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.5865371} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.271908,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"95a169d0-015b-11ef-b963-057e09d3e358"},"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/11f39817-9807-463f-af35-ec5b76694cb4/signaling 200 13ms","method":"POST","requestID":"95a169d0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/11f39817-9807-463f-af35-ec5b76694cb4/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.165","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"627d394fae47c7593461077d863bee8a"} experiment-1 | {"level":"info","message":"DELETE /experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd 204 161ms","method":"DELETE","requestID":"627d394fae47c7593461077d863bee8a","responseTime":161,"status":204,"url":"/experiments/ae965d9a-5c6f-43a3-ab0c-56b1b7bd25fd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 122ms","method":"POST","requestID":"c98e89b689087ee2d359cc0b046dc8a7","responseTime":122,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch","requestID":"c98e89b689087ee2d359cc0b046dc8a7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 122ms","method":"POST","requestID":"e1f2d7e4d6095ab48292567e92cfbcdf","responseTime":122,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.127","http_referrer":"","http_user_agent":"node-fetch","requestID":"e1f2d7e4d6095ab48292567e92cfbcdf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b5ae8cc9e188c90975f13a0909796db8","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2303","request_time":"0.867","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d814080b35de8db9490573a48d954f88"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2436","request_time":"0.879","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b8d75ac48dfc2c80df3c864a7eb7a4d7"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/eac29e49-ffb4-43ff-a8d1-34f2c4ae6104' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.94591,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867833,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b5ae8cc9e188c90975f13a0909796db8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/11f39817-9807-463f-af35-ec5b76694cb4' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3396f301-b1e1-4b78-a54f-6ab7b380e684","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.6725717} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b5ae8cc9e188c90975f13a0909796db8"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"42cac3f1-ee29-49dc-b65a-3e2199300188","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.6770098} 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":"b5ae8cc9e188c90975f13a0909796db8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"21ad5d93-cdcb-4218-99e5-c7f8598a23fb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.6899536} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ee57c81-d94d-4605-bf0d-688446af651e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.6901965} 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":"b5ae8cc9e188c90975f13a0909796db8"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.689930363Z"}]},"request_id":"d8842607-06c9-4a3a-8ca7-d25bda7ab344","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.694519} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b5ae8cc9e188c90975f13a0909796db8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b5ae8cc9e188c90975f13a0909796db8"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"b5ae8cc9e188c90975f13a0909796db8","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"610e4b20dd2e1e5afa202a9753078c98","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.708995,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867833,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzM30.6ELvTqoMfwFHGTtD4sn5ITiPRahvAOCkNm_qCpjK8L8"} 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":"610e4b20dd2e1e5afa202a9753078c98"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"47622516-d959-439f-b06f-0c4bd2ada187","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.7154837} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"610e4b20dd2e1e5afa202a9753078c98"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa17eefb-21a4-44fb-b96f-9cfa5bf08d5d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.719828} 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":"610e4b20dd2e1e5afa202a9753078c98"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"5576aa6b-5dc9-4d48-b0c7-5856079cac2b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.730137} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"519f04bd-525e-4f40-9b4e-50636505a8e1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.730332} 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":"610e4b20dd2e1e5afa202a9753078c98"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.730118824Z"}]},"request_id":"62ba97e1-2468-4e1e-9463-105c525065d9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867833.7348216} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"610e4b20dd2e1e5afa202a9753078c98"},"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 36ms","method":"POST","requestID":"610e4b20dd2e1e5afa202a9753078c98","responseTime":36,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"610e4b20dd2e1e5afa202a9753078c98"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNH0.7CRkKesowmPnXB2wvWSMp4pJUwjQepbwUL4l9g4mzJE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"6c0c92db6d38ebda90e14b0d4066288c","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:54Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.27453,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867834,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNH0.7CRkKesowmPnXB2wvWSMp4pJUwjQepbwUL4l9g4mzJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6c0c92db6d38ebda90e14b0d4066288c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.730118824Z"}]},"request_id":"82a8a11f-ac86-41cb-903f-54703dc3d36d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867834.2264953} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6c0c92db6d38ebda90e14b0d4066288c"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4064e7c4-d5cf-4536-a888-4acd58223bbb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867834.2340553} 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":"6c0c92db6d38ebda90e14b0d4066288c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.730118824Z"}]},"request_id":"f1bd98a8-d260-459f-8e48-85e96e183715","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867834.2551425} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6c0c92db6d38ebda90e14b0d4066288c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0e9d1eda-fec0-4531-8e43-07503d52d411 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6c0c92db6d38ebda90e14b0d4066288c"} device-1 | {"level":"info","message":"PATCH /devices/0e9d1eda-fec0-4531-8e43-07503d52d411 200 47ms","method":"PATCH","requestID":"6c0c92db6d38ebda90e14b0d4066288c","responseTime":47,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNH0.7CRkKesowmPnXB2wvWSMp4pJUwjQepbwUL4l9g4mzJE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7f073dd1484d5981fc247d36b6aba459","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:54Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.366352,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867834,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNH0.7CRkKesowmPnXB2wvWSMp4pJUwjQepbwUL4l9g4mzJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7f073dd1484d5981fc247d36b6aba459"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0e9d1eda-fec0-4531-8e43-07503d52d411/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":"7f073dd1484d5981fc247d36b6aba459"} device-1 | {"level":"info","message":"POST /devices/0e9d1eda-fec0-4531-8e43-07503d52d411/websocket 200 23ms","method":"POST","requestID":"7f073dd1484d5981fc247d36b6aba459","responseTime":23,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411' 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":"5aa0e15ca7e6a68937fc4abee7f10c87","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/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":"5aa0e15ca7e6a68937fc4abee7f10c87"} device-1 | {"level":"info","message":"OPTIONS /devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/websocket 200 2ms","method":"OPTIONS","requestID":"5aa0e15ca7e6a68937fc4abee7f10c87","responseTime":2,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9a247978539be7c2d515adccaf710e12","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.27438,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9a247978539be7c2d515adccaf710e12"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe/websocket 200 59ms","method":"POST","requestID":"9a247978539be7c2d515adccaf710e12","responseTime":59,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:23:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.064","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9a247978539be7c2d515adccaf710e12"} device-1 | {"level":"info","message":"device 'http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"ca12b910d29f18d9b7c82352e561eadc","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.279575,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca12b910d29f18d9b7c82352e561eadc"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.689930363Z"}]},"request_id":"017ba4ab-ef6d-4418-88eb-05a733326d31","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867835.8431754} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca12b910d29f18d9b7c82352e561eadc"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe? 200 19ms","method":"GET","requestID":"ca12b910d29f18d9b7c82352e561eadc","responseTime":19,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe? 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":"ca12b910d29f18d9b7c82352e561eadc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7035cd287fe7a311a6444d946cb678ae","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.265278,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7035cd287fe7a311a6444d946cb678ae"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.730118824Z"}]},"request_id":"90237841-80b1-44db-8091-6b72919a7fad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867835.8687696} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7035cd287fe7a311a6444d946cb678ae"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0e9d1eda-fec0-4531-8e43-07503d52d411? 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":"7035cd287fe7a311a6444d946cb678ae"} device-1 | {"level":"info","message":"GET /devices/0e9d1eda-fec0-4531-8e43-07503d52d411? 200 19ms","method":"GET","requestID":"7035cd287fe7a311a6444d946cb678ae","responseTime":19,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f9565b20c2f1425baa0eaabfda2b8154","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:39874","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.343392,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} 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":"f9565b20c2f1425baa0eaabfda2b8154"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"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:39874","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20725,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} 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":"970abdd0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.12826,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"970b0bf0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.689930363Z"}]},"request_id":"14b8e10c-6c04-4d5f-9798-d1c1fe08eef0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867835.961605} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"970abdd0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.730118824Z"}]},"request_id":"f6604b37-ef8f-46e9-b49b-c9e992eb5753","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867835.9630206} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"970b0bf0-015b-11ef-b963-057e09d3e358"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe? 200 20ms","method":"GET","requestID":"970abdd0-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0e9d1eda-fec0-4531-8e43-07503d52d411? 200 19ms","method":"GET","requestID":"970b0bf0-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"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/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933566,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} 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":"97160870-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.953003,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} 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":"97162f80-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2ea2c4b-9d77-453f-872e-64c8c2a48260","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.033346} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.504281,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","rebac_allow":false,"scope_allow":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":"97167da0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.689930363Z"}]},"request_id":"be18473c-c314-4b50-b8de-83616cf1f2eb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0413392} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling 200 19ms","method":"POST","requestID":"97167da0-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97160870-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.730118824Z"}]},"request_id":"aca9eda1-6835-4578-9b6a-e9d806922b58","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0450432} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97162f80-015b-11ef-b963-057e09d3e358"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe? 200 28ms","method":"GET","requestID":"97160870-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0e9d1eda-fec0-4531-8e43-07503d52d411? 200 28ms","method":"GET","requestID":"97162f80-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F48d7eb86-3230-4ab7-92b5-f8877a3ec367#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F48d7eb86-3230-4ab7-92b5-f8877a3ec367","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"6997b0c2-3e52-42e1-af11-7f75f7df2433","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0542805} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2ae255a-703b-445b-a028-15cf341a21a3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.054584} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"238312dc-6458-4714-ba40-0e9ddee2d571","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0550492} 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":"f9565b20c2f1425baa0eaabfda2b8154"},"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:39874","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.98651,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","rebac_allow":false,"scope_allow":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":"971a0010-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling 200 13ms","method":"POST","requestID":"971a0010-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"56d6c5c7-3ffa-47bd-8a14-fe4b83deb445","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0632505} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.054345,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:23:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f9565b20c2f1425baa0eaabfda2b8154"} experiment-1 | {"level":"info","message":"POST /experiments? 201 181ms","method":"POST","requestID":"f9565b20c2f1425baa0eaabfda2b8154","responseTime":181,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"971b1180-015b-11ef-b963-057e09d3e358"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling 200 12ms","method":"POST","requestID":"971b1180-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNn0.x6GVWZu3Z-x1TiI49v_Vo00ee3b17acG5Nf8HHIbwkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c4085dd6dbc8fa53a5258b939249d96a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.606301,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867836,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNn0.x6GVWZu3Z-x1TiI49v_Vo00ee3b17acG5Nf8HHIbwkE"} 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":"c4085dd6dbc8fa53a5258b939249d96a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cd7c75a2-5088-458a-9cbb-c7e40c22dbff","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0749552} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.119031,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"971d5b70-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.689930363Z"}]},"request_id":"ea119ca5-98ac-48f5-bd5f-a87b7403a637","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0779562} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c4085dd6dbc8fa53a5258b939249d96a"},"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/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling 200 11ms","method":"POST","requestID":"971d5b70-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe? 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":"c4085dd6dbc8fa53a5258b939249d96a"} device-1 | {"level":"info","message":"GET /devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe? 200 13ms","method":"GET","requestID":"c4085dd6dbc8fa53a5258b939249d96a","responseTime":13,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"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":"554567ba-659e-449c-9b17-a696804050f6"},{"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":"5ca0fd9c-cbd8-49f4-b993-ad20cd728394"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3413e2c3-78f8-422f-94c2-3e012d09131f"}]},"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/0e9d1eda-fec0-4531-8e43-07503d52d411"},{"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNn0.x6GVWZu3Z-x1TiI49v_Vo00ee3b17acG5Nf8HHIbwkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0198c76edc71f5b7beaecd64e969fe5e","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.920603,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867835,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNX0.aXtUEw2B-YXFttTQ1sgtPENomXzSgXCkOB7X5B0_yPc"} 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":"971f7e50-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.659262,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867836,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzNn0.x6GVWZu3Z-x1TiI49v_Vo00ee3b17acG5Nf8HHIbwkE"} 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":"0198c76edc71f5b7beaecd64e969fe5e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"fe867921-d667-47be-aa1f-64ddddc8469c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.097551} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d5fa71d-99ac-47c5-8b84-b0a99a2edd89","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0976982} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:53.730118824Z"}]},"request_id":"e22c8910-df50-40ad-98c9-170f26ddd677","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.0983982} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"971f7e50-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0198c76edc71f5b7beaecd64e969fe5e"},"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/0e9d1eda-fec0-4531-8e43-07503d52d411? 200 15ms","method":"GET","requestID":"0198c76edc71f5b7beaecd64e969fe5e","responseTime":15,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411?"} gateway-1 | {"time_local":"23/Apr/2024:10:23:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0e9d1eda-fec0-4531-8e43-07503d52d411? 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":"0198c76edc71f5b7beaecd64e969fe5e"} 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/c6a01d73-fdba-4390-8973-959c699dac90'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"971f7e50-015b-11ef-b963-057e09d3e358","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8356e051-3401-4ace-8836-4617bcabae69","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.1704159} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.234766,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","rebac_allow":false,"scope_allow":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":"972bda60-015b-11ef-b963-057e09d3e358"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling 200 9ms","method":"POST","requestID":"972bda60-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fa9efe50-384e-4bb1-9582-f74b708ec81e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867836.1845648} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.109694,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","rebac_allow":false,"scope_allow":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":"972d8810-015b-11ef-b963-057e09d3e358"},"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/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling 200 12ms","method":"POST","requestID":"972d8810-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling"} device-1 | {"data":{"peerconnection":"c6a01d73-fdba-4390-8973-959c699dac90","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/c6a01d73-fdba-4390-8973-959c699dac90' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c6a01d73-fdba-4390-8973-959c699dac90","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":"dc6ca6b960330cd8dfbc35be189f2416","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/0e9d1eda-fec0-4531-8e43-07503d52d411"},{"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"dc6ca6b960330cd8dfbc35be189f2416","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"dc6ca6b960330cd8dfbc35be189f2416"} device-1 | {"data":{"peerconnection":"c6a01d73-fdba-4390-8973-959c699dac90","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"c6a01d73-fdba-4390-8973-959c699dac90","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/c6a01d73-fdba-4390-8973-959c699dac90' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c6a01d73-fdba-4390-8973-959c699dac90","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":"c2952b73d9ebd176dc1f90da3c223014","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/0e9d1eda-fec0-4531-8e43-07503d52d411"},{"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc6a01d73-fdba-4390-8973-959c699dac90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ec056af-d41e-42b8-8cc0-81be66675e0f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.2685633} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":5.132197,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90","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":"97d2efd0-015b-11ef-b963-057e09d3e358"},"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/c6a01d73-fdba-4390-8973-959c699dac90 200 15ms","method":"GET","requestID":"97d2efd0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 47ms","method":"POST","requestID":"c2952b73d9ebd176dc1f90da3c223014","responseTime":47,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"c2952b73d9ebd176dc1f90da3c223014"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"03dc8d32-1fb6-4273-ad8b-5114ba723288","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.3080351} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.078223,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","rebac_allow":false,"scope_allow":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":"97d8e340-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling 200 17ms","method":"POST","requestID":"97d8e340-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee62e45d-4343-4220-8254-a99d375b17f5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.3277764} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.833894,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","rebac_allow":false,"scope_allow":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":"97dc1790-015b-11ef-b963-057e09d3e358"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling 200 14ms","method":"POST","requestID":"97dc1790-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"14c6ed611e43e4d58cf0bbbe03109822","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.157426,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867837,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY"} 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":"14c6ed611e43e4d58cf0bbbe03109822"},"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/48d7eb86-3230-4ab7-92b5-f8877a3ec367"} gateway-1 | {"time_local":"23/Apr/2024:10:23:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367 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":"14c6ed611e43e4d58cf0bbbe03109822"} experiment-1 | {"level":"info","message":"GET /experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367 200 16ms","method":"GET","requestID":"14c6ed611e43e4d58cf0bbbe03109822","responseTime":16,"status":200,"url":"/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"452919561b637adb71297d1af2727d71","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.251811,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867837,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY"} 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":"452919561b637adb71297d1af2727d71"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.335206,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867837,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY"} 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":"97e602a0-015b-11ef-b963-057e09d3e358"},"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/c6a01d73-fdba-4390-8973-959c699dac90' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c6a01d73-fdba-4390-8973-959c699dac90","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc6a01d73-fdba-4390-8973-959c699dac90': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc6a01d73-fdba-4390-8973-959c699dac90","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"7aa523ee-7742-4f86-8769-25c25fcb038e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.414} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c9d27c4-6710-45a8-8fab-107dc440ce10","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.4144235} 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":"97e602a0-015b-11ef-b963-057e09d3e358"},"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)"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"20223f865cc2c9eff03cdc1fa1be814c","responseTime":3,"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/0e9d1eda-fec0-4531-8e43-07503d52d411"},{"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90"}}},"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":"e3cee243ea70cc8480cefe786272760a","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":"closed","url":"http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411"},{"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/c6a01d73-fdba-4390-8973-959c699dac90 204 60ms","method":"DELETE","requestID":"97e602a0-015b-11ef-b963-057e09d3e358","responseTime":60,"status":204,"url":"/peerconnections/c6a01d73-fdba-4390-8973-959c699dac90"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0e9d1eda-fec0-4531-8e43-07503d52d411","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9f4450c0-e865-4c38-aaef-9707e22ac332","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.477494} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.186189,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0e9d1eda-fec0-4531-8e43-07503d52d411","object_type":"device","rebac_allow":false,"scope_allow":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":"97f2d3e0-015b-11ef-b963-057e09d3e358"},"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/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling 200 15ms","method":"POST","requestID":"97f2d3e0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/0e9d1eda-fec0-4531-8e43-07503d52d411/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F48d7eb86-3230-4ab7-92b5-f8877a3ec367': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F48d7eb86-3230-4ab7-92b5-f8877a3ec367","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"f73ca944-dcc7-41a3-a764-c6e1815dd5bf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.4878306} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d37b553d-7ae4-4db3-b8bb-a7e18e134e0c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.4884498} 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":"452919561b637adb71297d1af2727d71"},"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:39874","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F773f6de5-4cfb-49dd-aaaf-424fe25905fe","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"334af44f-54a5-459a-b349-0483b84e1530","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.4962842} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.008006,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe","object_type":"device","rebac_allow":false,"scope_allow":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":"97f5ba10-015b-11ef-b963-057e09d3e358"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling 200 15ms","method":"POST","requestID":"97f5ba10-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/773f6de5-4cfb-49dd-aaaf-424fe25905fe/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"} gateway-1 | {"time_local":"23/Apr/2024:10:23:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"452919561b637adb71297d1af2727d71"} gateway-1 | {"time_local":"23/Apr/2024:10:23:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2432","request_time":"3.264","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8c2805f14597d1ca9e254e16ccdd1689"} experiment-1 | {"level":"info","message":"DELETE /experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367 204 186ms","method":"DELETE","requestID":"452919561b637adb71297d1af2727d71","responseTime":186,"status":204,"url":"/experiments/48d7eb86-3230-4ab7-92b5-f8877a3ec367"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"20223f865cc2c9eff03cdc1fa1be814c","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"20223f865cc2c9eff03cdc1fa1be814c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"e3cee243ea70cc8480cefe786272760a","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"e3cee243ea70cc8480cefe786272760a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"929d01757712ccaa85f8f675984a933a","responseTime":5,"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/0e9d1eda-fec0-4531-8e43-07503d52d411' closed"} gateway-1 | {"time_local":"23/Apr/2024:10:23:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"1.767","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"974a520bde775562eda6a7c445d82517"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.950379,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867837,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY"} 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":"929d01757712ccaa85f8f675984a933a"},"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/773f6de5-4cfb-49dd-aaaf-424fe25905fe' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"16af085c-d4d0-476f-94d8-3c4374a7b3d9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.58249} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"929d01757712ccaa85f8f675984a933a"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc25e5f9-aa83-4b2f-93f1-9a49b696dbcd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.587868} 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":"929d01757712ccaa85f8f675984a933a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"9b62ff16-138f-4f3a-878a-ab48e8f32921","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6005366} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53e4f367-0738-426f-899b-6f7fb5cbd3c5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6006951} 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":"929d01757712ccaa85f8f675984a933a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.600515861Z"}]},"request_id":"b0a28671-bc45-4aeb-a4a0-84815768935e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6066818} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"929d01757712ccaa85f8f675984a933a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"929d01757712ccaa85f8f675984a933a"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"929d01757712ccaa85f8f675984a933a","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0e8a1f00fa1b00397c8b56eb876d74a1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.689666,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867837,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzN30.fyatSlCHyS3zJPKsuD6szfZ9V9yqVMuJ3pMjRynnDGY"} 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":"0e8a1f00fa1b00397c8b56eb876d74a1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1cc3aa0f-c4b4-45b3-ae05-ff77f2968e75","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6320512} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e8a1f00fa1b00397c8b56eb876d74a1"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ab18628-cbc6-4a68-a129-1158c6dd2cd3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6390207} 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":"0e8a1f00fa1b00397c8b56eb876d74a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"0a203a49-915d-4587-ac40-955a34b3aa4d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6479478} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ea501ac-222c-451d-bc64-29d1db2b9a48","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6481571} 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":"0e8a1f00fa1b00397c8b56eb876d74a1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.647922214Z"}]},"request_id":"91d92954-5242-41d4-a47f-8e25dcdd3fce","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867837.6527643} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e8a1f00fa1b00397c8b56eb876d74a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23: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.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0e8a1f00fa1b00397c8b56eb876d74a1"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"0e8a1f00fa1b00397c8b56eb876d74a1","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOH0.O_ajUVTVCCAWSvNdWqV_Qn9RiHtnZAd3Reqx_IRhB4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ee6f8ae7ff6321a5b059a64d40d07aa5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:58Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.1233,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867838,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOH0.O_ajUVTVCCAWSvNdWqV_Qn9RiHtnZAd3Reqx_IRhB4Q"} 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":"ee6f8ae7ff6321a5b059a64d40d07aa5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.647922214Z"}]},"request_id":"5429d52c-0975-4449-afde-061db28b8358","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867838.1452186} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee6f8ae7ff6321a5b059a64d40d07aa5"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"183323be-5005-47a7-ab9c-21aa8847c1d8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867838.1515648} 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":"ee6f8ae7ff6321a5b059a64d40d07aa5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.647922214Z"}]},"request_id":"42749bfd-543c-4035-8d4b-a20da637658d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867838.1788478} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee6f8ae7ff6321a5b059a64d40d07aa5"},"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126 200 50ms","method":"PATCH","requestID":"ee6f8ae7ff6321a5b059a64d40d07aa5","responseTime":50,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126"} gateway-1 | {"time_local":"23/Apr/2024:10:23:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.057","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ee6f8ae7ff6321a5b059a64d40d07aa5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOH0.O_ajUVTVCCAWSvNdWqV_Qn9RiHtnZAd3Reqx_IRhB4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"028d14fb69abc3e3a0bba2f3f7fb1741","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:58Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.64363,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867838,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOH0.O_ajUVTVCCAWSvNdWqV_Qn9RiHtnZAd3Reqx_IRhB4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"028d14fb69abc3e3a0bba2f3f7fb1741"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"028d14fb69abc3e3a0bba2f3f7fb1741"} device-1 | {"level":"info","message":"POST /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/websocket 200 26ms","method":"POST","requestID":"028d14fb69abc3e3a0bba2f3f7fb1741","responseTime":26,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126' 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":"a8f99b4518004a721694b89e01b7e546","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:23:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/150f2727-6559-419e-84b1-ba7dba2c64ec/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":"a8f99b4518004a721694b89e01b7e546"} device-1 | {"level":"info","message":"OPTIONS /devices/150f2727-6559-419e-84b1-ba7dba2c64ec/websocket 200 1ms","method":"OPTIONS","requestID":"a8f99b4518004a721694b89e01b7e546","responseTime":1,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"268f6548f79d6e90ea141fba21df791d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.195697,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"268f6548f79d6e90ea141fba21df791d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/150f2727-6559-419e-84b1-ba7dba2c64ec/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":"268f6548f79d6e90ea141fba21df791d"} device-1 | {"level":"info","message":"POST /devices/150f2727-6559-419e-84b1-ba7dba2c64ec/websocket 200 40ms","method":"POST","requestID":"268f6548f79d6e90ea141fba21df791d","responseTime":40,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ac4be5414307016b0e21bdcb720b7bb4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.304618,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac4be5414307016b0e21bdcb720b7bb4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.600515861Z"}]},"request_id":"f01368e8-8077-45b6-8b11-7fb6f94d9037","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.7255647} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac4be5414307016b0e21bdcb720b7bb4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/150f2727-6559-419e-84b1-ba7dba2c64ec? 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":"ac4be5414307016b0e21bdcb720b7bb4"} device-1 | {"level":"info","message":"GET /devices/150f2727-6559-419e-84b1-ba7dba2c64ec? 200 18ms","method":"GET","requestID":"ac4be5414307016b0e21bdcb720b7bb4","responseTime":18,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a67fc54529ddcd2d273936d2c83fbf26","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.294731,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a67fc54529ddcd2d273936d2c83fbf26"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.647922214Z"}]},"request_id":"1bc68487-a2fa-4481-b97a-b4eb15aa6558","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.7516034} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a67fc54529ddcd2d273936d2c83fbf26"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126? 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":"a67fc54529ddcd2d273936d2c83fbf26"} device-1 | {"level":"info","message":"GET /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126? 200 19ms","method":"GET","requestID":"a67fc54529ddcd2d273936d2c83fbf26","responseTime":19,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"8773745c64c83ee3848c984d3947c9a6","responseTime":8,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.825494,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} 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":"8773745c64c83ee3848c984d3947c9a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"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:39874","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.679937,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} 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":"995b8ba0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.799034,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} 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":"995bb2b0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.600515861Z"}]},"request_id":"f1445684-29ac-4764-bdaa-a5ab61723047","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.8424697} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"995b8ba0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.647922214Z"}]},"request_id":"41d02ba8-a3e4-45ab-83d8-2b2b47e88353","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.843297} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"995bb2b0-015b-11ef-b963-057e09d3e358"},"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/150f2727-6559-419e-84b1-ba7dba2c64ec? 200 15ms","method":"GET","requestID":"995b8ba0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126? 200 15ms","method":"GET","requestID":"995bb2b0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"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/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723364,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"99668820-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.533908,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9966d640-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.519071,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bc8ebb7b-ecd8-4c9a-b094-ed381b7010d8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9142818} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9966fd50-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.600515861Z"}]},"request_id":"b57ddca8-6f56-45ee-aef2-9fd7c9c50157","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9194105} device-1 | {"level":"info","message":"POST /devices/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling 200 11ms","method":"POST","requestID":"9966fd50-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec/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":"99668820-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.647922214Z"}]},"request_id":"7a1b4ec5-5d1b-4b4f-bf48-c5d9b52c12b1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9206147} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9966d640-015b-11ef-b963-057e09d3e358"},"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:39874","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F531a7f3d-102b-4a0e-89fa-9c0652809f50#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F531a7f3d-102b-4a0e-89fa-9c0652809f50","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"2008ace5-a4eb-426f-8e55-57395d5ffe4c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9282503} device-1 | {"level":"info","message":"GET /devices/150f2727-6559-419e-84b1-ba7dba2c64ec? 200 23ms","method":"GET","requestID":"99668820-015b-11ef-b963-057e09d3e358","responseTime":23,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec?"} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c458652e-a6c2-4412-9277-21e71b3d71fc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9285789} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7bcbe01c-a90a-4068-b6cd-d01062b497bb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9288044} device-1 | {"level":"info","message":"GET /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126? 200 22ms","method":"GET","requestID":"9966d640-015b-11ef-b963-057e09d3e358","responseTime":22,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8773745c64c83ee3848c984d3947c9a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.221371,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"99692030-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling 200 14ms","method":"POST","requestID":"99692030-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5d7acc34-a72e-46a6-a95a-d9999685ec0f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.936934} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.365986,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"996a7fc0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:23:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8773745c64c83ee3848c984d3947c9a6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} experiment-1 | {"level":"info","message":"POST /experiments? 201 171ms","method":"POST","requestID":"8773745c64c83ee3848c984d3947c9a6","responseTime":171,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling 200 10ms","method":"POST","requestID":"996a7fc0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"502c852d2369678b91bdcd662f79ed40","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"340fb37b-007f-4afd-9c4d-971f71725dc5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9495726} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.921883,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"996c7b90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.684937,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"502c852d2369678b91bdcd662f79ed40"},"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling 200 11ms","method":"POST","requestID":"996c7b90-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.600515861Z"}]},"request_id":"8c26c4f9-163f-4fa8-92d4-cb7666ce1923","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9568956} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"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":"9256e5a9-028b-4d40-917c-c73f5db5039a"},{"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":"c00e8695-ca44-47f8-85d9-13fc86dc63ce"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"73ff8b62-a2c7-4044-9cf3-e43953b085e8"}]},"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/150f2727-6559-419e-84b1-ba7dba2c64ec"},{"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126"}],"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":"502c852d2369678b91bdcd662f79ed40"},"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":"23/Apr/2024:10:23:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/150f2727-6559-419e-84b1-ba7dba2c64ec? 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":"502c852d2369678b91bdcd662f79ed40"} device-1 | {"level":"info","message":"GET /devices/150f2727-6559-419e-84b1-ba7dba2c64ec? 200 15ms","method":"GET","requestID":"502c852d2369678b91bdcd662f79ed40","responseTime":15,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.487395,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} 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":"996ec580-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0ddfd1c1e975f5a4c521b42c1886396b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65219,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:23:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867839,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2NzgzOX0.BPIze2_Up2lre-4B5Sf9yLL0P_rYu5V3jSXBYCOYTnM"} 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":"0ddfd1c1e975f5a4c521b42c1886396b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"676608d0-31a6-4f56-ba7e-64f278d8e8e4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9751816} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e44595b-57d8-47e4-a597-d9fa69c51646","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9756222} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:23:57.647922214Z"}]},"request_id":"678d75d5-c6d4-4716-bd8e-f39c3b00d320","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867839.9763775} 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":"996ec580-015b-11ef-b963-057e09d3e358"},"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 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0ddfd1c1e975f5a4c521b42c1886396b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:23:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126? 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":"0ddfd1c1e975f5a4c521b42c1886396b"} device-1 | {"level":"info","message":"GET /devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126? 200 13ms","method":"GET","requestID":"0ddfd1c1e975f5a4c521b42c1886396b","responseTime":13,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126?"} 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/4425b515-ca56-43cc-a111-e1b5b9263286'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 42ms","method":"POST","requestID":"996ec580-015b-11ef-b963-057e09d3e358","responseTime":42,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"4425b515-ca56-43cc-a111-e1b5b9263286","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"722f2f5f-1592-4c49-90ce-f224b04c4d25","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.0327325} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.316117,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","rebac_allow":false,"scope_allow":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":"997925c0-015b-11ef-b963-057e09d3e358"},"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/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling 200 9ms","method":"POST","requestID":"997925c0-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5f657819-0ea8-47f2-bc93-d1db802f603b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.0447562} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.722303,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"997ad370-015b-11ef-b963-057e09d3e358"},"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling 200 14ms","method":"POST","requestID":"997ad370-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4425b515-ca56-43cc-a111-e1b5b9263286","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":"ab2eafdbcd5b19e0f7834ea5b20d1ed2","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec"},{"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"ab2eafdbcd5b19e0f7834ea5b20d1ed2","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"ab2eafdbcd5b19e0f7834ea5b20d1ed2"} device-1 | {"data":{"peerconnection":"4425b515-ca56-43cc-a111-e1b5b9263286","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4425b515-ca56-43cc-a111-e1b5b9263286","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/4425b515-ca56-43cc-a111-e1b5b9263286' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4425b515-ca56-43cc-a111-e1b5b9263286","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":"5ff9764dea85e15b1880b51539781470","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/150f2727-6559-419e-84b1-ba7dba2c64ec"},{"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4425b515-ca56-43cc-a111-e1b5b9263286","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0b434d8e-b8c3-4384-a6e5-ccd93cdc3e77","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.122964} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.171481,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286","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":"9986e160-015b-11ef-b963-057e09d3e358"},"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/4425b515-ca56-43cc-a111-e1b5b9263286 200 8ms","method":"GET","requestID":"9986e160-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"5ff9764dea85e15b1880b51539781470","responseTime":25,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"5ff9764dea85e15b1880b51539781470"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ae4c5da1-3271-4aa1-94d8-679bfc8c0d51","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.143587} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.047053,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","rebac_allow":false,"scope_allow":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":"998a15b0-015b-11ef-b963-057e09d3e358"},"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/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling 200 8ms","method":"POST","requestID":"998a15b0-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8406a58c-860c-4d5a-b5ef-d7e762332cf6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.153924} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.687647,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"998b9c50-015b-11ef-b963-057e09d3e358"},"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling 200 9ms","method":"POST","requestID":"998b9c50-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"add63a551ad0720fbce3bef6f85245b3","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.267561,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867840,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4"} 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":"add63a551ad0720fbce3bef6f85245b3"},"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/531a7f3d-102b-4a0e-89fa-9c0652809f50"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"add63a551ad0720fbce3bef6f85245b3"} experiment-1 | {"level":"info","message":"GET /experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50 200 17ms","method":"GET","requestID":"add63a551ad0720fbce3bef6f85245b3","responseTime":17,"status":200,"url":"/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"faf52406b4b4216f7a01f18edc168a16","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.247987,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867840,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4"} 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":"faf52406b4b4216f7a01f18edc168a16"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.172164,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867840,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4"} 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":"999bf000-015b-11ef-b963-057e09d3e358"},"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/4425b515-ca56-43cc-a111-e1b5b9263286' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4425b515-ca56-43cc-a111-e1b5b9263286","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4425b515-ca56-43cc-a111-e1b5b9263286': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4425b515-ca56-43cc-a111-e1b5b9263286","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"9b6d312a-90d0-4f9d-b76e-de495926fb4c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.2812839} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"026620e27ec127188b25b0985e4baa0c","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d06f8702-34fc-4717-a83c-f803d5545715","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.2824807} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec"},{"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"558fb648a3eadab52ec4272aa89816c8","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"999bf000-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/150f2727-6559-419e-84b1-ba7dba2c64ec"},{"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4425b515-ca56-43cc-a111-e1b5b9263286","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/4425b515-ca56-43cc-a111-e1b5b9263286 204 68ms","method":"DELETE","requestID":"999bf000-015b-11ef-b963-057e09d3e358","responseTime":68,"status":204,"url":"/peerconnections/4425b515-ca56-43cc-a111-e1b5b9263286"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F150f2727-6559-419e-84b1-ba7dba2c64ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"16e041c8-c526-4a62-b944-ffc7fc9c9853","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.353893} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.197619,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/150f2727-6559-419e-84b1-ba7dba2c64ec","object_type":"device","rebac_allow":false,"scope_allow":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":"99a95d80-015b-11ef-b963-057e09d3e358"},"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/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling 200 19ms","method":"POST","requestID":"99a95d80-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/150f2727-6559-419e-84b1-ba7dba2c64ec/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F531a7f3d-102b-4a0e-89fa-9c0652809f50': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F531a7f3d-102b-4a0e-89fa-9c0652809f50","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"ec70cfa8-1e8a-4e90-983d-fea15604bf47","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.3656082} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04d7e58e-2a80-40c4-8436-2006d6e8d788","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.3660874} 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":"faf52406b4b4216f7a01f18edc168a16"},"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:39874","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b5d9536-8d65-4c62-9f8e-920b4c0e5126","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1baee39a-32ac-4c24-9043-ac2e45643edc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.3737984} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.711546,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126","object_type":"device","rebac_allow":false,"scope_allow":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":"99acb8e0-015b-11ef-b963-057e09d3e358"},"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling 200 15ms","method":"POST","requestID":"99acb8e0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/2b5d9536-8d65-4c62-9f8e-920b4c0e5126/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.201","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"faf52406b4b4216f7a01f18edc168a16"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2252","request_time":"2.217","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"bc23f84d3bb5a36e6d08b702e722b1e8"} experiment-1 | {"level":"info","message":"DELETE /experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50 204 195ms","method":"DELETE","requestID":"faf52406b4b4216f7a01f18edc168a16","responseTime":195,"status":204,"url":"/experiments/531a7f3d-102b-4a0e-89fa-9c0652809f50"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"026620e27ec127188b25b0985e4baa0c","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"026620e27ec127188b25b0985e4baa0c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"558fb648a3eadab52ec4272aa89816c8","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch","requestID":"558fb648a3eadab52ec4272aa89816c8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"29fc978500815b4ec9d5884cc95468d7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2201","request_time":"0.755","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c9e72f082e9acbd83d81ab63641159be"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.953315,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867840,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4"} 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":"29fc978500815b4ec9d5884cc95468d7"},"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/2b5d9536-8d65-4c62-9f8e-920b4c0e5126' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4ea12eaf-e3b4-4a3b-9f79-22dac0b6a062","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.4612854} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"29fc978500815b4ec9d5884cc95468d7"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf916873-b3df-4fe1-9b66-b794e40004e6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.4668522} 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":"29fc978500815b4ec9d5884cc95468d7"},"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/150f2727-6559-419e-84b1-ba7dba2c64ec' closed"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"f0e36767-4cab-4750-a38e-da7525134b8d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.4783902} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e0bf0917-7d16-4638-b3f1-203162c824ab","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.478628} 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":"29fc978500815b4ec9d5884cc95468d7"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.478362354Z"}]},"request_id":"cfbb0957-a1b8-4af3-8fc3-1ac3da48ff74","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.483052} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"29fc978500815b4ec9d5884cc95468d7"},"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":"29fc978500815b4ec9d5884cc95468d7","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"29fc978500815b4ec9d5884cc95468d7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c42d1fce5fbb0a747a0684c832c504da","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.69122,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867840,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MH0.2gKFVXYpvz2MdkzstAKftLZdbJx4r-Ok8BWXt54BkL4"} 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":"c42d1fce5fbb0a747a0684c832c504da"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"755412b6-73cd-4ef6-94eb-5e56da86dd4d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.5098815} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c42d1fce5fbb0a747a0684c832c504da"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"114ada9c-0a15-4d21-ac6e-c828e015740b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.5146916} 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":"c42d1fce5fbb0a747a0684c832c504da"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"2b5b0651-ef32-4909-a1a7-bd26d5530979","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.5240057} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c13340d1-ce8c-402d-b26e-1fb3a97bdc79","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.5242736} 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":"c42d1fce5fbb0a747a0684c832c504da"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.523977135Z"}]},"request_id":"ab9a5bbf-602e-4e33-ae6e-f813d38e7efe","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867840.528539} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c42d1fce5fbb0a747a0684c832c504da"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:00 +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":"c42d1fce5fbb0a747a0684c832c504da"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"c42d1fce5fbb0a747a0684c832c504da","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MX0._e1HNPuaHPmuvOYEy9XD95xxUgE3bLnBO3xJjjUGfVI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"22594674865ab5c3f4dc9456b31ff212","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:01Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702462,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867841,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MX0._e1HNPuaHPmuvOYEy9XD95xxUgE3bLnBO3xJjjUGfVI"} 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":"22594674865ab5c3f4dc9456b31ff212"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.478362354Z"}]},"request_id":"bbc715b0-0103-482e-ba9d-af676b0d208c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867841.0244539} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22594674865ab5c3f4dc9456b31ff212"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da55f596-accb-461c-ba63-c58bbb7d29d2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867841.029331} 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":"22594674865ab5c3f4dc9456b31ff212"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.478362354Z"}]},"request_id":"00a5e92c-21b5-46eb-99ac-6617905f4820","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867841.0547874} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22594674865ab5c3f4dc9456b31ff212"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec 200 42ms","method":"PATCH","requestID":"22594674865ab5c3f4dc9456b31ff212","responseTime":42,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec"} gateway-1 | {"time_local":"23/Apr/2024:10:24:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"22594674865ab5c3f4dc9456b31ff212"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MX0._e1HNPuaHPmuvOYEy9XD95xxUgE3bLnBO3xJjjUGfVI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5665dd69049668b7f499745a95b47bf8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:01Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.155762,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867841,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0MX0._e1HNPuaHPmuvOYEy9XD95xxUgE3bLnBO3xJjjUGfVI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5665dd69049668b7f499745a95b47bf8"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/websocket 200 16ms","method":"POST","requestID":"5665dd69049668b7f499745a95b47bf8","responseTime":16,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/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":"5665dd69049668b7f499745a95b47bf8"} device-1 | {"level":"info","message":"device 'http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec' 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":"77c34985c925a2f180a228f6e101528c","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/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":"77c34985c925a2f180a228f6e101528c"} device-1 | {"level":"info","message":"OPTIONS /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/websocket 200 1ms","method":"OPTIONS","requestID":"77c34985c925a2f180a228f6e101528c","responseTime":1,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8766fb8b03a9a3f4f13b628d4a3f0ee5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.377097,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8766fb8b03a9a3f4f13b628d4a3f0ee5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/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":"8766fb8b03a9a3f4f13b628d4a3f0ee5"} device-1 | {"level":"info","message":"POST /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/websocket 200 27ms","method":"POST","requestID":"8766fb8b03a9a3f4f13b628d4a3f0ee5","responseTime":27,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"8496e93b610e1066e8855585e65ec570","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20292,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8496e93b610e1066e8855585e65ec570"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.478362354Z"}]},"request_id":"9660c294-57d8-4f71-a9ff-dfe7bc336648","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.5771763} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8496e93b610e1066e8855585e65ec570"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec? 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":"8496e93b610e1066e8855585e65ec570"} device-1 | {"level":"info","message":"GET /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec? 200 19ms","method":"GET","requestID":"8496e93b610e1066e8855585e65ec570","responseTime":19,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"230be69c929b11aaeca854eb39928c20","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.3312,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"230be69c929b11aaeca854eb39928c20"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.523977135Z"}]},"request_id":"39c2098b-64a0-44ac-a455-81441b75971d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.6066363} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"230be69c929b11aaeca854eb39928c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847? 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":"230be69c929b11aaeca854eb39928c20"} device-1 | {"level":"info","message":"GET /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847? 200 22ms","method":"GET","requestID":"230be69c929b11aaeca854eb39928c20","responseTime":22,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"42378a2f48290e738effa8c2725ef530","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:39874","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.190783,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} 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":"42378a2f48290e738effa8c2725ef530"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"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:39874","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.834842,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} 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":"9b0da870-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.362519,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b0df690-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.478362354Z"}]},"request_id":"736461d8-0224-4ee9-b8db-9bd4188dd72b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.6916409} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b0da870-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.523977135Z"}]},"request_id":"1f033a29-89e8-43b9-a6b7-af19f2a7a7dd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.6929} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b0df690-015b-11ef-b963-057e09d3e358"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec? 200 21ms","method":"GET","requestID":"9b0da870-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847? 200 21ms","method":"GET","requestID":"9b0df690-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"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:39874","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.920923,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} 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":"9b198f50-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.817347,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} 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":"9b19dd70-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:56670","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.991944,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1e53aae7-6e31-4612-b958-31a8e814b27b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.7674973} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","rebac_allow":false,"scope_allow":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":"9b1a2b90-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.478362354Z"}]},"request_id":"21b69eba-25bc-4b35-9d33-7ee1d981ae30","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.7732577} 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":"9b198f50-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.523977135Z"}]},"request_id":"c46b6a88-21f3-43e6-92c5-2a81e82d8c8a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.7775452} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b19dd70-015b-11ef-b963-057e09d3e358"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling 200 19ms","method":"POST","requestID":"9b1a2b90-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b9d10a-7ffc-4588-b971-44a1d6ce89c8#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b9d10a-7ffc-4588-b971-44a1d6ce89c8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"641df76a-d36b-48bd-9a47-6074083b38a6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.7825098} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"972ac9d7-c452-4031-96f2-78fc8e3a81af","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.7827117} 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":"42378a2f48290e738effa8c2725ef530"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} device-1 | {"level":"info","message":"GET /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec? 200 32ms","method":"GET","requestID":"9b198f50-015b-11ef-b963-057e09d3e358","responseTime":32,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847? 200 31ms","method":"GET","requestID":"9b19dd70-015b-11ef-b963-057e09d3e358","responseTime":31,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1db5252c-87f7-4200-b6a7-805f9eb28e39","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.7904606} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.519601,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9b1dae00-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:24:02 +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":"42378a2f48290e738effa8c2725ef530"} experiment-1 | {"level":"info","message":"POST /experiments? 201 178ms","method":"POST","requestID":"42378a2f48290e738effa8c2725ef530","responseTime":178,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling 200 18ms","method":"POST","requestID":"9b1dae00-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7650914b-affe-4f3b-8a16-357084513d01","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.8024945} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.461144,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0","level":"info","message":"auth send jwt"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e3c35272d84bc2541d389e4ca0e319a1","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b1f82c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} device-1 | {"level":"info","message":"POST /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling 200 14ms","method":"POST","requestID":"9b1f82c0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.900492,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3c35272d84bc2541d389e4ca0e319a1"},"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:39874","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.478362354Z"}]},"request_id":"2b885f85-6b25-4851-8445-90b144e32174","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.8166494} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ff20e6a2-a445-40c5-8078-dab703cd5e57","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.8167982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3c35272d84bc2541d389e4ca0e319a1"},"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:39874","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.642502,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9b21f3c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec? 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":"e3c35272d84bc2541d389e4ca0e319a1"} device-1 | {"level":"info","message":"GET /devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec? 200 15ms","method":"GET","requestID":"e3c35272d84bc2541d389e4ca0e319a1","responseTime":15,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling 200 11ms","method":"POST","requestID":"9b21f3c0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"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":"b90f1770-62b4-40da-9b88-a15b67f54f1d"},{"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":"e5045972-2a47-49b6-a891-0ebf56f63397"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d8356554-215e-4d0b-9f06-b11f736d66c5"}]},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec"},{"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"267c678653f5f63ef857468e7671f32f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.658783,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} 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":"9b2416a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645097,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867842,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Mn0.0EyMq_cRtjy7XZb-TaEzIzg0CY_6ZUY1vvHp4A9JfS0"} 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":"267c678653f5f63ef857468e7671f32f"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:00.523977135Z"}]},"request_id":"a6665a58-85b5-4976-9b50-4a29361d7edc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.834892} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"267c678653f5f63ef857468e7671f32f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"267c678653f5f63ef857468e7671f32f"} device-1 | {"level":"info","message":"GET /devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847? 200 10ms","method":"GET","requestID":"267c678653f5f63ef857468e7671f32f","responseTime":10,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"81b6b45e-b4f6-4ffd-852b-25420328c3f4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.8385975} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2d881fc0-81d8-4402-84e9-a811fb90f2cc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.8389163} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b2416a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64'"} 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 23ms","method":"POST","requestID":"9b2416a0-015b-11ef-b963-057e09d3e358","responseTime":23,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"78006365-2ec9-4db6-ba2d-8d8ec81d7c57","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.883599} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.111189,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","rebac_allow":false,"scope_allow":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":"9b2c2cf0-015b-11ef-b963-057e09d3e358"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling 200 10ms","method":"POST","requestID":"9b2c2cf0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aeded785-3a62-4dc4-a2ce-a6279a3a41c8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867842.8960047} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.864528,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9b2e01b0-015b-11ef-b963-057e09d3e358"},"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling 200 9ms","method":"POST","requestID":"9b2e01b0-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling"} device-1 | {"data":{"peerconnection":"bd45114f-7cc2-4b51-afae-3d153d39fe64","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/bd45114f-7cc2-4b51-afae-3d153d39fe64' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bd45114f-7cc2-4b51-afae-3d153d39fe64","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":"512c7c69ef105d56e512f8303a83a26c","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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec"},{"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"512c7c69ef105d56e512f8303a83a26c","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"512c7c69ef105d56e512f8303a83a26c"} device-1 | {"data":{"peerconnection":"bd45114f-7cc2-4b51-afae-3d153d39fe64","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"bd45114f-7cc2-4b51-afae-3d153d39fe64","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/bd45114f-7cc2-4b51-afae-3d153d39fe64' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bd45114f-7cc2-4b51-afae-3d153d39fe64","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":"a18fc509a450abdfcf50b7ee465e503e","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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec"},{"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:03Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbd45114f-7cc2-4b51-afae-3d153d39fe64","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"619ee94a-4f2e-4062-8468-efb42fe8cebd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867843.9769766} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.779984,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64","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":"9bd27f10-015b-11ef-b963-057e09d3e358"},"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/bd45114f-7cc2-4b51-afae-3d153d39fe64 200 12ms","method":"GET","requestID":"9bd27f10-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"a18fc509a450abdfcf50b7ee465e503e","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"a18fc509a450abdfcf50b7ee465e503e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2425ce13-e6da-4bc9-9bf6-5363f917023a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.010066} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.599774,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","rebac_allow":false,"scope_allow":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":"9bd7af30-015b-11ef-b963-057e09d3e358"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling 200 14ms","method":"POST","requestID":"9bd7af30-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b1b5e85-afd3-4bb4-9ac0-659c92171b54","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.0267286} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.728818,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","rebac_allow":false,"scope_allow":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":"9bda4740-015b-11ef-b963-057e09d3e358"},"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling 200 14ms","method":"POST","requestID":"9bda4740-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b60ed16e51ce8a40a5dc7e09daee75a7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.256936,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867844,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0"} 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":"b60ed16e51ce8a40a5dc7e09daee75a7"},"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/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b60ed16e51ce8a40a5dc7e09daee75a7"} experiment-1 | {"level":"info","message":"GET /experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8 200 15ms","method":"GET","requestID":"b60ed16e51ce8a40a5dc7e09daee75a7","responseTime":15,"status":200,"url":"/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3aa633df1663980e65aa9a9385ad485a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.187346,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867844,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0"} 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":"3aa633df1663980e65aa9a9385ad485a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.334053,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867844,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0"} 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":"9be543c0-015b-11ef-b963-057e09d3e358"},"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/bd45114f-7cc2-4b51-afae-3d153d39fe64' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bd45114f-7cc2-4b51-afae-3d153d39fe64","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":"234e92c3d3a28b3b7853ad779e597e6f","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbd45114f-7cc2-4b51-afae-3d153d39fe64': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbd45114f-7cc2-4b51-afae-3d153d39fe64","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"3be9451a-6b5b-4b2f-b5ce-50fd6aefc680","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.121858} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0c17fd37-5ac4-4fb4-ab32-a6627c31061e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.1225994} 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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec"},{"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64"}}},"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":"f852414a27bcfa7894ace3ee893bd111","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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec"},{"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64"}}},"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":"9be543c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"bd45114f-7cc2-4b51-afae-3d153d39fe64","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/bd45114f-7cc2-4b51-afae-3d153d39fe64 204 58ms","method":"DELETE","requestID":"9be543c0-015b-11ef-b963-057e09d3e358","responseTime":58,"status":204,"url":"/peerconnections/bd45114f-7cc2-4b51-afae-3d153d39fe64"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F47deeddb-1d2c-4f96-9aff-72ab63cc1fec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"303f777d-7420-4740-9216-584607097e2a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.185296} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.16761,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec","object_type":"device","rebac_allow":false,"scope_allow":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":"9bf26320-015b-11ef-b963-057e09d3e358"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling 200 15ms","method":"POST","requestID":"9bf26320-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/47deeddb-1d2c-4f96-9aff-72ab63cc1fec/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b9d10a-7ffc-4588-b971-44a1d6ce89c8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17b9d10a-7ffc-4588-b971-44a1d6ce89c8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"806a58fe-3866-4070-9b94-ba47acbcec4b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.1952217} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"201da00e-29eb-450c-b531-3e7033e718ad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.1957166} 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":"3aa633df1663980e65aa9a9385ad485a"},"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:39874","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6efbd5d1-cdab-4b63-9450-6108b4ad1847","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5401bdb0-b28e-46a0-8eee-c5cd70bb6391","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.2048485} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.492018,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847","object_type":"device","rebac_allow":false,"scope_allow":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":"9bf52240-015b-11ef-b963-057e09d3e358"},"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/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling 200 16ms","method":"POST","requestID":"9bf52240-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3aa633df1663980e65aa9a9385ad485a"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2437","request_time":"3.185","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5858738613fbab86c8a20004b0c70ca8"} experiment-1 | {"level":"info","message":"DELETE /experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8 204 191ms","method":"DELETE","requestID":"3aa633df1663980e65aa9a9385ad485a","responseTime":191,"status":204,"url":"/experiments/17b9d10a-7ffc-4588-b971-44a1d6ce89c8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"234e92c3d3a28b3b7853ad779e597e6f","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.153","http_referrer":"","http_user_agent":"node-fetch","requestID":"234e92c3d3a28b3b7853ad779e597e6f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"f852414a27bcfa7894ace3ee893bd111","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"f852414a27bcfa7894ace3ee893bd111"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"f7858d9106c990f4f3d5d734ba621042","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.156947,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867844,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0"} 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":"f7858d9106c990f4f3d5d734ba621042"},"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/47deeddb-1d2c-4f96-9aff-72ab63cc1fec' closed"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2194","request_time":"1.743","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a853068306a795cec686a833bc8314aa"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6efbd5d1-cdab-4b63-9450-6108b4ad1847' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"eecf7275-775f-45e0-9243-fb2f2125fea8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.297929} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f7858d9106c990f4f3d5d734ba621042"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"58f738fb-d939-4b70-ba9c-5e67366d75f6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.3034732} 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":"f7858d9106c990f4f3d5d734ba621042"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"7b390002-1ded-40d8-9872-630a155cd16f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.3139284} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f443c864-3fbd-4d23-8887-c9616537040f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.3140829} 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":"f7858d9106c990f4f3d5d734ba621042"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.313904708Z"}]},"request_id":"902be6e4-dc14-4ff3-a7f9-98ba7ac87fab","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.318597} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f7858d9106c990f4f3d5d734ba621042"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +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":"f7858d9106c990f4f3d5d734ba621042"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"f7858d9106c990f4f3d5d734ba621042","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b6b4e778a4e437969426b6f04de8ed63","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.735499,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867844,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0"} 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":"b6b4e778a4e437969426b6f04de8ed63"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7800afb7-765d-42ec-b827-0190d08adc48","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.3421092} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6b4e778a4e437969426b6f04de8ed63"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"044e022d-2bcf-4ed1-b2ce-1c7031295420","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.3467672} 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":"b6b4e778a4e437969426b6f04de8ed63"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"8fa2c618-cf69-4341-83ed-bafcc1973864","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.355458} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"111718d2-9e1f-4cc3-92ac-a3a9c932b0aa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.3556416} 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":"b6b4e778a4e437969426b6f04de8ed63"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.355435139Z"}]},"request_id":"19a948f3-b95f-4410-9c16-7c2dced2dd89","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.3599463} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6b4e778a4e437969426b6f04de8ed63"},"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 36ms","method":"POST","requestID":"b6b4e778a4e437969426b6f04de8ed63","responseTime":36,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b6b4e778a4e437969426b6f04de8ed63"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7955302eab704cd7c18321e56a209ca6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.431112,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867844,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7955302eab704cd7c18321e56a209ca6"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.313904708Z"}]},"request_id":"524a9ced-9581-420d-9aeb-999f3a664e0a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.8483512} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7955302eab704cd7c18321e56a209ca6"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d009a73f-2b2e-42f8-97f5-5b0ab60f5c2e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.857093} 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":"7955302eab704cd7c18321e56a209ca6"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.313904708Z"}]},"request_id":"68a04613-8037-46ed-a336-a685c8575dfa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867844.8863163} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7955302eab704cd7c18321e56a209ca6"},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39 200 57ms","method":"PATCH","requestID":"7955302eab704cd7c18321e56a209ca6","responseTime":57,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.061","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7955302eab704cd7c18321e56a209ca6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c42307dc46ceda611583cfab0ae314d6","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.122425,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867844,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0NH0.xND-KdPh6b2pN4tWndUUrd8kDOay82-2Pj76LuJdAO0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c42307dc46ceda611583cfab0ae314d6"},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/websocket 200 19ms","method":"POST","requestID":"c42307dc46ceda611583cfab0ae314d6","responseTime":19,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/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":"c42307dc46ceda611583cfab0ae314d6"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39' 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":"b6bcc1c17e3d57bb50f5b5874159528d","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/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":"b6bcc1c17e3d57bb50f5b5874159528d"} device-1 | {"level":"info","message":"OPTIONS /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/websocket 200 1ms","method":"OPTIONS","requestID":"b6bcc1c17e3d57bb50f5b5874159528d","responseTime":1,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1abcd644e4e3a67a4eea3868426591d2","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.218037,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1abcd644e4e3a67a4eea3868426591d2"},"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955/websocket 200 39ms","method":"POST","requestID":"1abcd644e4e3a67a4eea3868426591d2","responseTime":39,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1abcd644e4e3a67a4eea3868426591d2"} device-1 | {"level":"info","message":"device 'http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"922435a2eeaee660f4dec980eebccccc","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.292074,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"922435a2eeaee660f4dec980eebccccc"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.313904708Z"}]},"request_id":"daf0b369-24a2-4a35-bdeb-d53a21f0ee05","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.4195096} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"922435a2eeaee660f4dec980eebccccc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39? 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":"922435a2eeaee660f4dec980eebccccc"} device-1 | {"level":"info","message":"GET /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39? 200 22ms","method":"GET","requestID":"922435a2eeaee660f4dec980eebccccc","responseTime":22,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9e170a6a664aacadc8f838ba553525c4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.211147,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9e170a6a664aacadc8f838ba553525c4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.355435139Z"}]},"request_id":"2e0375e7-a13f-40fb-804a-1283b7602b6e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.4487174} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9e170a6a664aacadc8f838ba553525c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955? 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":"9e170a6a664aacadc8f838ba553525c4"} device-1 | {"level":"info","message":"GET /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955? 200 18ms","method":"GET","requestID":"9e170a6a664aacadc8f838ba553525c4","responseTime":18,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"812e566591d3b0fd39bdf3b577254d2b","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:39874","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.306359,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} 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":"812e566591d3b0fd39bdf3b577254d2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"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:39874","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.127509,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9d57e690-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.471751,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} 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":"9d5834b0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.313904708Z"}]},"request_id":"1dcca73d-cef9-4aac-992d-0b513a89e304","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.5365896} 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":"9d57e690-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.355435139Z"}]},"request_id":"b8b8133a-4487-4695-bcb6-91194b910a05","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.5377455} 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":"9d5834b0-015b-11ef-b963-057e09d3e358"},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39? 200 26ms","method":"GET","requestID":"9d57e690-015b-11ef-b963-057e09d3e358","responseTime":26,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955? 200 25ms","method":"GET","requestID":"9d5834b0-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"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/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.102844,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} 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":"9d641b90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.556078,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} 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":"9d6469b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.807557,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a534ce79-7759-4808-b452-bfa9f822663d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6198583} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","rebac_allow":false,"scope_allow":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":"9d64dee0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.313904708Z"}]},"request_id":"736f3ce0-023c-4c8c-9b75-9a4089989f58","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6233697} 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":"9d641b90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling 200 24ms","method":"POST","requestID":"9d64dee0-015b-11ef-b963-057e09d3e358","responseTime":24,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.355435139Z"}]},"request_id":"95ce01c0-63f0-4d3c-9454-d65762057a37","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6286745} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"9d6469b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3cf01314-674e-4464-82b9-a784a5bf1551#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3cf01314-674e-4464-82b9-a784a5bf1551","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c4087d2e-a548-492f-9539-74b5e6563fbf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6335824} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"451ebd22-7140-4b20-a23c-6830777c2148","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6338644} 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":"812e566591d3b0fd39bdf3b577254d2b"},"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:39874","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39? 200 41ms","method":"GET","requestID":"9d641b90-015b-11ef-b963-057e09d3e358","responseTime":41,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955? 200 40ms","method":"GET","requestID":"9d6469b0-015b-11ef-b963-057e09d3e358","responseTime":40,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dcb9fb3d-8dfd-42ab-b6c2-d717991bcc09","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6445184} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.654565,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","rebac_allow":false,"scope_allow":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":"9d6924a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:24:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"812e566591d3b0fd39bdf3b577254d2b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 190ms","method":"POST","requestID":"812e566591d3b0fd39bdf3b577254d2b","responseTime":190,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling 200 21ms","method":"POST","requestID":"9d6924a0-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a5d4589a-cafc-46d5-97e2-b93704acdb3f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6580746} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.034266,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE","level":"info","message":"auth send jwt"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"759276d7edf13e10ff523cdcb1d44cce","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9d6b95a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} device-1 | {"level":"info","message":"POST /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling 200 16ms","method":"POST","requestID":"9d6b95a0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.338618,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"759276d7edf13e10ff523cdcb1d44cce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.313904708Z"}]},"request_id":"5b25eaff-5c78-4dc4-8458-1f92b8322e66","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.676102} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"759276d7edf13e10ff523cdcb1d44cce"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1e293318-0ec4-4636-9374-368cc72a53cb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.6777227} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.803973,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","rebac_allow":false,"scope_allow":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":"9d6ea2e0-015b-11ef-b963-057e09d3e358"},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39? 200 22ms","method":"GET","requestID":"759276d7edf13e10ff523cdcb1d44cce","responseTime":22,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39? 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":"759276d7edf13e10ff523cdcb1d44cce"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling 200 16ms","method":"POST","requestID":"9d6ea2e0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"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":"0488d66f-906e-44ae-8483-781433cc7f99"},{"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":"599aec92-e72a-4ea7-b60f-0916f0c8a758"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"29a82649-d71a-4158-ae01-14e1fec896d5"}]},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39"},{"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f4c0860f1891247dd6759c34cf30b6b1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.862329,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} 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":"9d71b020-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.064449,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867846,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0Nn0.3P8yhAhLm5xGC-uNgAFXiIrcu2x_UKsELHsK0wFO7AE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4c0860f1891247dd6759c34cf30b6b1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:04.355435139Z"}]},"request_id":"915f65aa-f5ca-4db1-b7a8-23979d259bd4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.7020626} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4c0860f1891247dd6759c34cf30b6b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955? 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":"f4c0860f1891247dd6759c34cf30b6b1"} device-1 | {"level":"info","message":"GET /devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955? 200 13ms","method":"GET","requestID":"f4c0860f1891247dd6759c34cf30b6b1","responseTime":13,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"d03c9b2b-0a9c-4ddb-890b-ceda3ac8d1e0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.7057881} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7119ce9b-437c-4bf0-87b2-df6679cc846f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.7059233} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9d71b020-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 40ms","method":"POST","requestID":"9d71b020-015b-11ef-b963-057e09d3e358","responseTime":40,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90fd1832-0dfe-4a45-82e4-366124260463","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.7618856} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.426996,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","rebac_allow":false,"scope_allow":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":"9d7be950-015b-11ef-b963-057e09d3e358"},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling 200 9ms","method":"POST","requestID":"9d7be950-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e4ebe91f-ba4e-4b46-8161-e3512e720e80","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867846.7727084} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.578673,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9d7d9700-015b-11ef-b963-057e09d3e358"},"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling 200 9ms","method":"POST","requestID":"9d7d9700-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling"} device-1 | {"data":{"peerconnection":"0b1aa56c-1a6b-4913-9820-d28f84d084e2","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/0b1aa56c-1a6b-4913-9820-d28f84d084e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0b1aa56c-1a6b-4913-9820-d28f84d084e2","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":"422fe7b7fc3fbea8b908836b866f8727","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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39"},{"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"422fe7b7fc3fbea8b908836b866f8727","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"422fe7b7fc3fbea8b908836b866f8727"} device-1 | {"data":{"peerconnection":"0b1aa56c-1a6b-4913-9820-d28f84d084e2","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"0b1aa56c-1a6b-4913-9820-d28f84d084e2","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/0b1aa56c-1a6b-4913-9820-d28f84d084e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0b1aa56c-1a6b-4913-9820-d28f84d084e2","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":"a3d8734616efa7a38de6e2a80f5d8b87","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39"},{"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0b1aa56c-1a6b-4913-9820-d28f84d084e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d62498a5-c26d-4857-85aa-77f8276bbf65","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867847.8692813} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.987333,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2","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":"9e24ac70-015b-11ef-b963-057e09d3e358"},"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/0b1aa56c-1a6b-4913-9820-d28f84d084e2 200 12ms","method":"GET","requestID":"9e24ac70-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"a3d8734616efa7a38de6e2a80f5d8b87","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.046","http_referrer":"","http_user_agent":"node-fetch","requestID":"a3d8734616efa7a38de6e2a80f5d8b87"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"441f604e-ea0c-418e-bfe0-b4c151147abe","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867847.9029012} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.774634,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","rebac_allow":false,"scope_allow":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":"9e29dc90-015b-11ef-b963-057e09d3e358"},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling 200 13ms","method":"POST","requestID":"9e29dc90-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8719349-0b56-4fa4-a3e2-ae4d7ccfb146","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867847.9205463} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.078559,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","rebac_allow":false,"scope_allow":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":"9e2c4d90-015b-11ef-b963-057e09d3e358"},"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling 200 15ms","method":"POST","requestID":"9e2c4d90-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0N30.Np4VcdqURV3gV-9FXacxPJ4WArhim5WKvs2E7wunaCE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f1a3bbf39fa13a4ff1546bc76f1aeca3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3cf01314-674e-4464-82b9-a784a5bf1551"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.328795,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867847,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0N30.Np4VcdqURV3gV-9FXacxPJ4WArhim5WKvs2E7wunaCE"} 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":"f1a3bbf39fa13a4ff1546bc76f1aeca3"},"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/3cf01314-674e-4464-82b9-a784a5bf1551"} gateway-1 | {"time_local":"23/Apr/2024:10:24:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3cf01314-674e-4464-82b9-a784a5bf1551 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":"f1a3bbf39fa13a4ff1546bc76f1aeca3"} experiment-1 | {"level":"info","message":"GET /experiments/3cf01314-674e-4464-82b9-a784a5bf1551 200 16ms","method":"GET","requestID":"f1a3bbf39fa13a4ff1546bc76f1aeca3","responseTime":16,"status":200,"url":"/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0N30.Np4VcdqURV3gV-9FXacxPJ4WArhim5WKvs2E7wunaCE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1c55153bcec53bce4a87011c88973b91","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3cf01314-674e-4464-82b9-a784a5bf1551"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.180351,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:07Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867847,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0N30.Np4VcdqURV3gV-9FXacxPJ4WArhim5WKvs2E7wunaCE"} 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":"1c55153bcec53bce4a87011c88973b91"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.537887,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867847,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0N30.Np4VcdqURV3gV-9FXacxPJ4WArhim5WKvs2E7wunaCE"} 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":"9e396cf0-015b-11ef-b963-057e09d3e358"},"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/0b1aa56c-1a6b-4913-9820-d28f84d084e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0b1aa56c-1a6b-4913-9820-d28f84d084e2","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0b1aa56c-1a6b-4913-9820-d28f84d084e2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0b1aa56c-1a6b-4913-9820-d28f84d084e2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"cf0c63a0-ca71-49e0-be09-7902018f641a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.0254824} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d496538eb09ecafeeffc2be83d9d529c","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7da7be91-1425-4218-a6d0-edabb8a1f738","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.0260966} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"9e396cf0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39"},{"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"29c2350670901853e6ee62ea50ba9f25","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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39"},{"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"0b1aa56c-1a6b-4913-9820-d28f84d084e2","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/0b1aa56c-1a6b-4913-9820-d28f84d084e2 204 49ms","method":"DELETE","requestID":"9e396cf0-015b-11ef-b963-057e09d3e358","responseTime":49,"status":204,"url":"/peerconnections/0b1aa56c-1a6b-4913-9820-d28f84d084e2"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3cd1e508-3541-4cac-9e72-9d50dd0e4c39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1563fe00-e414-4d5a-892e-c3b9e3539574","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.0707564} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.063408,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9e437f10-015b-11ef-b963-057e09d3e358"},"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/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling 200 12ms","method":"POST","requestID":"9e437f10-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39/signaling"} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8ba6a304-9353-455b-a41c-a6322f3c4cb3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.079483} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3cf01314-674e-4464-82b9-a784a5bf1551': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3cf01314-674e-4464-82b9-a784a5bf1551","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"6fe16ef2-4453-43c0-9b5a-6dee7ec24f83","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.0795178} 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":"1c55153bcec53bce4a87011c88973b91"},"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:39874","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F620e438b-f8ff-4c8e-a09d-2a2eb849d955","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c42b0a47-b5cf-449a-a31a-b32ecb240715","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.083642} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.449606,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9e45a1f0-015b-11ef-b963-057e09d3e358"},"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling 200 8ms","method":"POST","requestID":"9e45a1f0-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/620e438b-f8ff-4c8e-a09d-2a2eb849d955/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3cf01314-674e-4464-82b9-a784a5bf1551"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3cf01314-674e-4464-82b9-a784a5bf1551 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.168","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1c55153bcec53bce4a87011c88973b91"} experiment-1 | {"level":"info","message":"DELETE /experiments/3cf01314-674e-4464-82b9-a784a5bf1551 204 163ms","method":"DELETE","requestID":"1c55153bcec53bce4a87011c88973b91","responseTime":163,"status":204,"url":"/experiments/3cf01314-674e-4464-82b9-a784a5bf1551"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2435","request_time":"3.225","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b806603c72c8ac84e6f1da22df3dbc7e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"d496538eb09ecafeeffc2be83d9d529c","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.123","http_referrer":"","http_user_agent":"node-fetch","requestID":"d496538eb09ecafeeffc2be83d9d529c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 115ms","method":"POST","requestID":"29c2350670901853e6ee62ea50ba9f25","responseTime":115,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.122","http_referrer":"","http_user_agent":"node-fetch","requestID":"29c2350670901853e6ee62ea50ba9f25"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e216068b919ab597d0d6b9e0106a7850","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2194","request_time":"1.768","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6d9e74cb6da298075fea47bd438f0615"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.900199,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3cd1e508-3541-4cac-9e72-9d50dd0e4c39' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} 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":"e216068b919ab597d0d6b9e0106a7850"},"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/620e438b-f8ff-4c8e-a09d-2a2eb849d955' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3be90b3f-5b46-4cb2-a194-eb6af39b6680","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.1704087} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e216068b919ab597d0d6b9e0106a7850"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e07653ef-4444-4ebd-949c-4f0f900e7db6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.175561} 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":"e216068b919ab597d0d6b9e0106a7850"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"b62e77f3-0f05-44da-b274-55f845b92c44","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.1842537} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e86776b0-0159-4b50-a9f3-ad581cbaafd8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.1843884} 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":"e216068b919ab597d0d6b9e0106a7850"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.184232283Z"}]},"request_id":"83adf1f3-5f2d-4e29-8fab-e521c5abd8d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.1887424} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e216068b919ab597d0d6b9e0106a7850"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e216068b919ab597d0d6b9e0106a7850"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"e216068b919ab597d0d6b9e0106a7850","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b49b66da1a92b17fbeb8f0e8deeb1bbd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.714582,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} 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":"b49b66da1a92b17fbeb8f0e8deeb1bbd"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2925b54e-b791-4230-8595-e8e766fb529d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.2146013} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b49b66da1a92b17fbeb8f0e8deeb1bbd"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a6cf6cd9-bdc2-4a47-822d-a984d4136c73","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.2197788} 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":"b49b66da1a92b17fbeb8f0e8deeb1bbd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"4a318557-309c-4a29-b700-eaa4f569b67c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.2277079} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4a12985-5375-451f-aa35-202c3b0964f9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.2280207} 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":"b49b66da1a92b17fbeb8f0e8deeb1bbd"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.227679212Z"}]},"request_id":"89b3fdbb-c47b-4e57-a5a4-b3824c97d87d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.2325335} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b49b66da1a92b17fbeb8f0e8deeb1bbd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"b49b66da1a92b17fbeb8f0e8deeb1bbd","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b49b66da1a92b17fbeb8f0e8deeb1bbd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"18fde8805573fc631553a82221bd8322","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"09e9feff3f8231cd38787bd5f9f480f1","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.755641,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"18fde8805573fc631553a82221bd8322"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68392,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09e9feff3f8231cd38787bd5f9f480f1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.184232283Z"}]},"request_id":"e1354425-fed6-42d9-9318-3ca2ca40e57a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.730157} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"18fde8805573fc631553a82221bd8322"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.227679212Z"}]},"request_id":"28b9292a-9845-4170-98b3-06423e36aa7d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.7319539} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09e9feff3f8231cd38787bd5f9f480f1"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"214f62dc-abbb-4bcc-932c-100c43232f26","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.7446492} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bcfc2446-f4c3-49a0-b69c-3e36691ddb79","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.7446492} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.227679212Z"}]},"request_id":"df2842e3-d022-41fe-bf4f-a631af004057","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.7453706} 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":"09e9feff3f8231cd38787bd5f9f480f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} 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":"18fde8805573fc631553a82221bd8322"},"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":"09e9feff3f8231cd38787bd5f9f480f1"},"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/f79de6cc-a163-4993-9430-8f06fffe8172 200 30ms","method":"PATCH","requestID":"09e9feff3f8231cd38787bd5f9f480f1","responseTime":30,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f79de6cc-a163-4993-9430-8f06fffe8172 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":"09e9feff3f8231cd38787bd5f9f480f1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cbc046575921172513db03003e759d1d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.100741,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbc046575921172513db03003e759d1d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.184232283Z"}]},"request_id":"f3616aab-79d8-4fd7-9ce9-5a8f19f1c319","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.7599854} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"18fde8805573fc631553a82221bd8322"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf 200 46ms","method":"PATCH","requestID":"18fde8805573fc631553a82221bd8322","responseTime":46,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"18fde8805573fc631553a82221bd8322"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f79de6cc-a163-4993-9430-8f06fffe8172/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":"cbc046575921172513db03003e759d1d"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6e9126bd0feff33c50021dc78e497872","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/f79de6cc-a163-4993-9430-8f06fffe8172/websocket 200 16ms","method":"POST","requestID":"cbc046575921172513db03003e759d1d","responseTime":16,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.787079,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} 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":"6e9126bd0feff33c50021dc78e497872"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/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":"6e9126bd0feff33c50021dc78e497872"} device-1 | {"level":"info","message":"POST /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/websocket 200 20ms","method":"POST","requestID":"6e9126bd0feff33c50021dc78e497872","responseTime":20,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0a19f0241cef1db1aeef805b307935ed","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.657057,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} 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":"0a19f0241cef1db1aeef805b307935ed"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.184232283Z"}]},"request_id":"6af476a5-464d-4635-8012-df45d05db0a1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.8173285} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a19f0241cef1db1aeef805b307935ed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf? 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":"0a19f0241cef1db1aeef805b307935ed"} device-1 | {"level":"info","message":"GET /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf? 200 13ms","method":"GET","requestID":"0a19f0241cef1db1aeef805b307935ed","responseTime":13,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7dd89ab63e4b6694c1588f3430033b81","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.216905,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7dd89ab63e4b6694c1588f3430033b81"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.227679212Z"}]},"request_id":"890527f4-fdbe-40a1-bfaf-745eb24eca49","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.8370082} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7dd89ab63e4b6694c1588f3430033b81"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f79de6cc-a163-4993-9430-8f06fffe8172? 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":"7dd89ab63e4b6694c1588f3430033b81"} device-1 | {"level":"info","message":"GET /devices/f79de6cc-a163-4993-9430-8f06fffe8172? 200 16ms","method":"GET","requestID":"7dd89ab63e4b6694c1588f3430033b81","responseTime":16,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b003ae1225e215cf23163c6f948a950a","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:39874","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.105156,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} 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":"b003ae1225e215cf23163c6f948a950a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"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:39874","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.913067,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ec420c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.092252,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ec46ee0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.184232283Z"}]},"request_id":"53be01df-adfe-4c88-9d62-f689f68f0dd5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.9187074} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ec420c0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.227679212Z"}]},"request_id":"dd32606e-7322-4e07-84a0-cf96e329ac59","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.9197457} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ec46ee0-015b-11ef-b963-057e09d3e358"},"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/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf? 200 18ms","method":"GET","requestID":"9ec420c0-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f79de6cc-a163-4993-9430-8f06fffe8172? 200 17ms","method":"GET","requestID":"9ec46ee0-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"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:39874","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.918196,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ecfb980-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.812792,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ed007a0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.184232283Z"}]},"request_id":"11df15f3-4731-4da0-b151-12461a49edc7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.9980776} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.227679212Z"}]},"request_id":"20544384-4672-40b3-a368-6485587e465d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867848.998758} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ecfb980-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9ed007a0-015b-11ef-b963-057e09d3e358"},"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:36540","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:08Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"739d5414-6671-44fb-9511-d63b4c2c80b3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0024931} authorization-1 | {"client_addr":"127.0.0.1:36540","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.093315,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"9ed02eb0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"GET /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf? 200 22ms","method":"GET","requestID":"9ecfb980-015b-11ef-b963-057e09d3e358","responseTime":22,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffbbd2531-86d1-4edd-b501-bf912327693d#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffbbd2531-86d1-4edd-b501-bf912327693d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c535147c-e336-4efc-8b6d-0dbf0616c865","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0046587} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b59e6a59-7fd5-4426-af7f-cd57f03eb7c9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0049918} device-1 | {"level":"info","message":"GET /devices/f79de6cc-a163-4993-9430-8f06fffe8172? 200 21ms","method":"GET","requestID":"9ed007a0-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172?"} 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":"b003ae1225e215cf23163c6f948a950a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling 200 25ms","method":"POST","requestID":"9ed02eb0-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"183581f8-34f3-4124-8fc2-2a8e07b1d913","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0145266} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.575303,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9ed3b120-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 169ms","method":"POST","requestID":"b003ae1225e215cf23163c6f948a950a","responseTime":169,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b003ae1225e215cf23163c6f948a950a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling 200 9ms","method":"POST","requestID":"9ed3b120-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a82391a0-92bc-4f3c-9f33-7b9113caf5f8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0207372} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.636222,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9ed47470-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1d37fad4d6717b454a078d458adeecd8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b6a7c150-703f-48fd-ad69-60a827f81d14","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0292294} device-1 | {"level":"info","message":"POST /devices/f79de6cc-a163-4993-9430-8f06fffe8172/signaling 200 14ms","method":"POST","requestID":"9ed47470-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.470871,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9ed5d400-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.059783,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867849,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d37fad4d6717b454a078d458adeecd8"},"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/f79de6cc-a163-4993-9430-8f06fffe8172/signaling 200 11ms","method":"POST","requestID":"9ed5d400-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.184232283Z"}]},"request_id":"17947af8-ccc1-44c5-a89f-1bcf858e0a31","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.035518} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"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":"646b1b1e-d08f-4ef5-b5e7-4bc10056cb6d"},{"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":"a94e76a5-301b-43d4-8026-62171b8c29cf"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5e190ac5-339b-4db2-ad1e-b7e3b10014a2"}]},"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/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf"},{"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/f79de6cc-a163-4993-9430-8f06fffe8172"}],"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":"1d37fad4d6717b454a078d458adeecd8"},"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":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf? 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":"1d37fad4d6717b454a078d458adeecd8"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} device-1 | {"level":"info","message":"GET /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf? 200 13ms","method":"GET","requestID":"1d37fad4d6717b454a078d458adeecd8","responseTime":13,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.796365,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867848,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OH0.XGfkEdyOoLo5VhvvXQ0f6Cm9J_tSridJt23XztjfR2s"} 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":"9ed7f6e0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c295b7fd01cd103e2e1de1d5e576b93e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6456,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867849,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ"} 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":"c295b7fd01cd103e2e1de1d5e576b93e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"95a2fc3b-ca4d-4710-bf7f-5c68916a7a63","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0526707} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cdcb9ca9-f7f9-4d7a-b18e-b9d5c8938e54","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.0528233} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:08.227679212Z"}]},"request_id":"82ce475d-e45c-4089-87e1-7dbf67c29752","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.053554} 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":"9ed7f6e0-015b-11ef-b963-057e09d3e358"},"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":"c295b7fd01cd103e2e1de1d5e576b93e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f79de6cc-a163-4993-9430-8f06fffe8172? 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":"c295b7fd01cd103e2e1de1d5e576b93e"} device-1 | {"level":"info","message":"GET /devices/f79de6cc-a163-4993-9430-8f06fffe8172? 200 12ms","method":"GET","requestID":"c295b7fd01cd103e2e1de1d5e576b93e","responseTime":12,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172?"} 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/ed093056-b53f-45b0-afa9-2c3263ed2b1b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b'"} 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":"9ed7f6e0-015b-11ef-b963-057e09d3e358","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","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/ed093056-b53f-45b0-afa9-2c3263ed2b1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c46f2bb1-71f8-4a6f-8c38-622282969f2c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.112798} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":11.967491,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6356e19b4c0aae7df44451645781295c","responseTime":1,"status":200,"url":"/auth"} 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":"9ee145b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} 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/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf"},{"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/f79de6cc-a163-4993-9430-8f06fffe8172"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"6356e19b4c0aae7df44451645781295c","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"6356e19b4c0aae7df44451645781295c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling 200 25ms","method":"POST","requestID":"9ee145b0-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1ed1353-4194-4518-bdf3-69961006aa69","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.1312778} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.122652,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","rebac_allow":false,"scope_allow":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":"9ee58b70-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f79de6cc-a163-4993-9430-8f06fffe8172/signaling 200 9ms","method":"POST","requestID":"9ee58b70-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172/signaling"} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","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/ed093056-b53f-45b0-afa9-2c3263ed2b1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","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":"ab9b65945562da02e1b11486a1990808","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/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf"},{"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/f79de6cc-a163-4993-9430-8f06fffe8172"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fed093056-b53f-45b0-afa9-2c3263ed2b1b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bcc25800-7628-438a-9789-deeb2e393685","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.1768236} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.662275,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b","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":"9eec6940-015b-11ef-b963-057e09d3e358"},"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/ed093056-b53f-45b0-afa9-2c3263ed2b1b 200 9ms","method":"GET","requestID":"9eec6940-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"ab9b65945562da02e1b11486a1990808","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch","requestID":"ab9b65945562da02e1b11486a1990808"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a6fa1bc7-be95-49c8-b5e3-10d364fca7cf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.2054503} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.0299,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9ef0af00-015b-11ef-b963-057e09d3e358"},"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/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling 200 10ms","method":"POST","requestID":"9ef0af00-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dcb9382a-45b9-4559-8610-0727865fe7f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.218001} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.822733,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9ef2aad0-015b-11ef-b963-057e09d3e358"},"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/f79de6cc-a163-4993-9430-8f06fffe8172/signaling 200 10ms","method":"POST","requestID":"9ef2aad0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8e56c31e6f300d23128c84b650608e08","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fbbd2531-86d1-4edd-b501-bf912327693d"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.058612,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867849,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ"} 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":"8e56c31e6f300d23128c84b650608e08"},"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/fbbd2531-86d1-4edd-b501-bf912327693d"} experiment-1 | {"level":"info","message":"GET /experiments/fbbd2531-86d1-4edd-b501-bf912327693d 200 14ms","method":"GET","requestID":"8e56c31e6f300d23128c84b650608e08","responseTime":14,"status":200,"url":"/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fbbd2531-86d1-4edd-b501-bf912327693d HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8e56c31e6f300d23128c84b650608e08"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"42ff531329d510e69c9647c2e2343874","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fbbd2531-86d1-4edd-b501-bf912327693d"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.286579,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867849,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ"} 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":"42ff531329d510e69c9647c2e2343874"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.164385,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867849,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ"} 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":"9f003f60-015b-11ef-b963-057e09d3e358"},"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/ed093056-b53f-45b0-afa9-2c3263ed2b1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","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":"47ade58f7d4672ef5f84a4dfcf700913","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf"},{"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/f79de6cc-a163-4993-9430-8f06fffe8172"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"47dcaf238ab2a9032a90a63d6ed6959d","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf"},{"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/f79de6cc-a163-4993-9430-8f06fffe8172"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fed093056-b53f-45b0-afa9-2c3263ed2b1b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fed093056-b53f-45b0-afa9-2c3263ed2b1b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"da248197-1f0b-426c-98d0-62c3f72ef896","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.3337474} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cb2cdd7e-bbb1-4841-a8ea-539c49569731","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.3341038} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f003f60-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"data":{"peerconnection":"ed093056-b53f-45b0-afa9-2c3263ed2b1b","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/ed093056-b53f-45b0-afa9-2c3263ed2b1b 204 59ms","method":"DELETE","requestID":"9f003f60-015b-11ef-b963-057e09d3e358","responseTime":59,"status":204,"url":"/peerconnections/ed093056-b53f-45b0-afa9-2c3263ed2b1b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4badb9c2-83f0-4846-8384-7ed055f45078","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.3908665} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.677518,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf","object_type":"device","rebac_allow":false,"scope_allow":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":"9f0cc280-015b-11ef-b963-057e09d3e358"},"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/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling 200 14ms","method":"POST","requestID":"9f0cc280-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffbbd2531-86d1-4edd-b501-bf912327693d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffbbd2531-86d1-4edd-b501-bf912327693d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"482a740b-c9b5-40e8-a644-0b68cfbebd63","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.4013815} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d2f7a059-e755-44a3-9b74-f85525e2f28e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.4036212} 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":"42ff531329d510e69c9647c2e2343874"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff79de6cc-a163-4993-9430-8f06fffe8172","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c4750016-e1d4-42bf-84e1-97d6aa5bf90a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.4084432} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.188913,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f79de6cc-a163-4993-9430-8f06fffe8172","object_type":"device","rebac_allow":false,"scope_allow":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":"9f0f5a90-015b-11ef-b963-057e09d3e358"},"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/f79de6cc-a163-4993-9430-8f06fffe8172/signaling 200 15ms","method":"POST","requestID":"9f0f5a90-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/f79de6cc-a163-4993-9430-8f06fffe8172/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fbbd2531-86d1-4edd-b501-bf912327693d"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fbbd2531-86d1-4edd-b501-bf912327693d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.186","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"42ff531329d510e69c9647c2e2343874"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2199","request_time":"0.697","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e855598c6730c8cf642d6e7e3368ca08"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2201","request_time":"0.676","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"364a7508862e884fedf08761d90456fe"} experiment-1 | {"level":"info","message":"DELETE /experiments/fbbd2531-86d1-4edd-b501-bf912327693d 204 182ms","method":"DELETE","requestID":"42ff531329d510e69c9647c2e2343874","responseTime":182,"status":204,"url":"/experiments/fbbd2531-86d1-4edd-b501-bf912327693d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"47ade58f7d4672ef5f84a4dfcf700913","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"47ade58f7d4672ef5f84a4dfcf700913"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"47dcaf238ab2a9032a90a63d6ed6959d","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"47dcaf238ab2a9032a90a63d6ed6959d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"49ee57455fbc7055368b6cc5d3c74280","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/6b29d0fb-0739-478a-97b0-1f4fa7c6d3cf' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.162034,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867849,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ"} 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":"49ee57455fbc7055368b6cc5d3c74280"},"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/f79de6cc-a163-4993-9430-8f06fffe8172' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2ffd0e31-affd-45af-835f-93d0ce0ac809","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.4998596} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"49ee57455fbc7055368b6cc5d3c74280"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"871c2e6c-7031-49b8-873a-e9214af3304e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5059862} 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":"49ee57455fbc7055368b6cc5d3c74280"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"1e970045-d87d-4f10-9a02-fc11d46597dc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5165064} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1cc35d81-5f2c-4139-b670-8fa35a2f60ee","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5167975} 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":"49ee57455fbc7055368b6cc5d3c74280"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.516473536Z"}]},"request_id":"faf31770-398f-4594-9e87-1b12c876f641","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5219343} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"49ee57455fbc7055368b6cc5d3c74280"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"49ee57455fbc7055368b6cc5d3c74280","responseTime":48,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"49ee57455fbc7055368b6cc5d3c74280"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"03b5fbf4ad30e67f92460a02e58d1ba4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.000331,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867849,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg0OX0.xkSeoiRGBSLPM4mghweFzglxyzRCJ7o3xRuuiBy05rQ"} 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":"03b5fbf4ad30e67f92460a02e58d1ba4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a93eca4b-5b32-4789-9752-a123d2251570","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.54746} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03b5fbf4ad30e67f92460a02e58d1ba4"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"05b4455a-0df1-49d4-b172-82ce93797546","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5525339} 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":"03b5fbf4ad30e67f92460a02e58d1ba4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c8fc9447-b18c-49e8-ba9b-346b1b1fd021","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5651906} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e82934f9-f797-497b-81f8-5040bd7cb95e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5654976} 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":"03b5fbf4ad30e67f92460a02e58d1ba4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.565164526Z"}]},"request_id":"af90365d-7774-43a8-85f2-bfea5751c9af","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867849.5709698} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03b5fbf4ad30e67f92460a02e58d1ba4"},"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":"03b5fbf4ad30e67f92460a02e58d1ba4","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:09 +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":"03b5fbf4ad30e67f92460a02e58d1ba4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"134c345e60ca08bcb75a1b4868f6c073","responseTime":7,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b583951fa6fd77f15272e2c3b8eebfcd","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:39874","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.809702,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"134c345e60ca08bcb75a1b4868f6c073"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.611497,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"b583951fa6fd77f15272e2c3b8eebfcd"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.565164526Z"}]},"request_id":"d41fa8bc-c405-4abb-83e5-4bf7cc518567","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.0597155} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"134c345e60ca08bcb75a1b4868f6c073"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.516473536Z"}]},"request_id":"35e6db57-9a13-4859-a738-3317b0819f14","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.0602436} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b583951fa6fd77f15272e2c3b8eebfcd"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aa8b0d90-51e3-440c-9029-1730aa177a7a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.0646896} 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":"134c345e60ca08bcb75a1b4868f6c073"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39a008a0-7b36-4d7e-8d75-00c857cd803c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.067035} 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":"b583951fa6fd77f15272e2c3b8eebfcd"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.516473536Z"}]},"request_id":"9199f2d7-4a63-4b0c-a47c-29a015a43c51","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.0698736} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b583951fa6fd77f15272e2c3b8eebfcd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.032","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b583951fa6fd77f15272e2c3b8eebfcd"} device-1 | {"level":"info","message":"PATCH /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0 200 22ms","method":"PATCH","requestID":"b583951fa6fd77f15272e2c3b8eebfcd","responseTime":22,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"71d0dc99197173188ad70b04c19f0f86","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.116244,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"71d0dc99197173188ad70b04c19f0f86"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.565164526Z"}]},"request_id":"a0775328-c0b0-4652-b7c9-e72996b61ec6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.0965333} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"134c345e60ca08bcb75a1b4868f6c073"},"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/faed0ca3-0267-42da-8883-faacf5db93b5 200 51ms","method":"PATCH","requestID":"134c345e60ca08bcb75a1b4868f6c073","responseTime":51,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/faed0ca3-0267-42da-8883-faacf5db93b5 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.059","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"134c345e60ca08bcb75a1b4868f6c073"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/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":"71d0dc99197173188ad70b04c19f0f86"} device-1 | {"level":"info","message":"POST /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/websocket 200 26ms","method":"POST","requestID":"71d0dc99197173188ad70b04c19f0f86","responseTime":26,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"12220babe443ce6b57ff3f46bf582fad","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.813341,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"12220babe443ce6b57ff3f46bf582fad"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/faed0ca3-0267-42da-8883-faacf5db93b5/websocket 200 22ms","method":"POST","requestID":"12220babe443ce6b57ff3f46bf582fad","responseTime":22,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/faed0ca3-0267-42da-8883-faacf5db93b5/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":"12220babe443ce6b57ff3f46bf582fad"} device-1 | {"level":"info","message":"device 'http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2fb46d117d224ca46c782b03f7a807db","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714246,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fb46d117d224ca46c782b03f7a807db"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.516473536Z"}]},"request_id":"22de0c93-696a-46cd-bfbd-1f7f929aadff","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.160963} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fb46d117d224ca46c782b03f7a807db"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0? 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":"2fb46d117d224ca46c782b03f7a807db"} device-1 | {"level":"info","message":"GET /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0? 200 16ms","method":"GET","requestID":"2fb46d117d224ca46c782b03f7a807db","responseTime":16,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9dd1cefbafe9d74df87aa56ae4ddcbd9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.624638,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9dd1cefbafe9d74df87aa56ae4ddcbd9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.565164526Z"}]},"request_id":"c85a92af-4e31-46fd-9847-b8d153c338d8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.1816218} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9dd1cefbafe9d74df87aa56ae4ddcbd9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/faed0ca3-0267-42da-8883-faacf5db93b5? 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":"9dd1cefbafe9d74df87aa56ae4ddcbd9"} device-1 | {"level":"info","message":"GET /devices/faed0ca3-0267-42da-8883-faacf5db93b5? 200 16ms","method":"GET","requestID":"9dd1cefbafe9d74df87aa56ae4ddcbd9","responseTime":16,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1b66fe06f408c9c823d39cc319825ec4","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:39874","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.048423,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"1b66fe06f408c9c823d39cc319825ec4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"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:39874","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.994045,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f8f38f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.0659,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f8f6000-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.516473536Z"}]},"request_id":"4cdcc0a8-d13b-4946-92e1-a35285274c99","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.249083} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f8f38f0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.565164526Z"}]},"request_id":"dee128eb-6ddb-421c-86de-7c0d570add9a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.2507834} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f8f6000-015b-11ef-b963-057e09d3e358"},"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/e08aeee6-7249-49a8-acdd-a3913e498cd0? 200 16ms","method":"GET","requestID":"9f8f38f0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/faed0ca3-0267-42da-8883-faacf5db93b5? 200 16ms","method":"GET","requestID":"9f8f6000-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"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/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.946577,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"9f9860b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.782927,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36540","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"9f9887c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:36540","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.779237,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bdbdaf6e-5065-4d8e-a688-22de5b0d5a94","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.309505} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","rebac_allow":false,"scope_allow":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":"9f98d5e0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.516473536Z"}]},"request_id":"b662a6e0-a91e-4fce-9828-e6325fa2b97c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3155706} 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":"9f9860b0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.565164526Z"}]},"request_id":"ebd08eeb-ef48-4565-b94d-4e6d9e213ee5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3188117} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f9887c0-015b-11ef-b963-057e09d3e358"},"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/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling 200 19ms","method":"POST","requestID":"9f98d5e0-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F814655fe-fc46-448a-ae8d-5fd565d1046c#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F814655fe-fc46-448a-ae8d-5fd565d1046c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c7ee194b-563c-4707-90aa-51de65fc0f61","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.324784} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0? 200 28ms","method":"GET","requestID":"9f9860b0-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0?"} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"14cb6573-8c52-4f1b-870f-dd20b9054f3a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3252647} device-1 | {"level":"info","message":"GET /devices/faed0ca3-0267-42da-8883-faacf5db93b5? 200 28ms","method":"GET","requestID":"9f9887c0-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5?"} 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":"1b66fe06f408c9c823d39cc319825ec4"},"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:39874","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ee6ac46-45df-49b4-b70d-0606a3b5514b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3290465} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.02926,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"9f9c0a30-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/faed0ca3-0267-42da-8883-faacf5db93b5/signaling 200 12ms","method":"POST","requestID":"9f9c0a30-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b63d2dc2-147c-405b-881f-b5d66970dcd6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.335914} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.597303,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9f9d1ba0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"POST /experiments? 201 146ms","method":"POST","requestID":"1b66fe06f408c9c823d39cc319825ec4","responseTime":146,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1b66fe06f408c9c823d39cc319825ec4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling 200 11ms","method":"POST","requestID":"9f9d1ba0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","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":"bebc51691b4ae823ba8b4933da6b30d0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.939652,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"bebc51691b4ae823ba8b4933da6b30d0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9990f255-afc5-401d-bea3-98137998febc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3480797} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.644951,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9f9f1770-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.516473536Z"}]},"request_id":"e7c3de44-5fc4-42c0-a775-b2c13ffb032b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3527741} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/faed0ca3-0267-42da-8883-faacf5db93b5/signaling 200 11ms","method":"POST","requestID":"9f9f1770-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5/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":"bebc51691b4ae823ba8b4933da6b30d0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"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":"ae8c32b5-4423-4385-aa96-adad55f6a692"},{"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":"9ceb2333-729f-4e75-a98b-a544ee0258ca"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"c700a3a8-1ad9-47c7-8004-b4734fa371f5"}]},"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/e08aeee6-7249-49a8-acdd-a3913e498cd0"},{"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/faed0ca3-0267-42da-8883-faacf5db93b5"}],"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:39874","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0? 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":"bebc51691b4ae823ba8b4933da6b30d0"} device-1 | {"level":"info","message":"GET /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0? 200 15ms","method":"GET","requestID":"bebc51691b4ae823ba8b4933da6b30d0","responseTime":15,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.936126,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"9fa11340-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1c042854246a1a1c602edd9b549440d8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.766372,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1c042854246a1a1c602edd9b549440d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"7dfe0326-5d39-413d-9a4b-cdc470ed8684","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3716917} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c9a48389-0994-45e3-bae6-84ef5c18696a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.3720233} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:09.565164526Z"}]},"request_id":"4199e8b8-e25f-492c-bc5a-e93c34b5fb64","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.373117} 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":"9fa11340-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"level":"info","message":"POST /relations/query 200 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":"1c042854246a1a1c602edd9b549440d8"},"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/faed0ca3-0267-42da-8883-faacf5db93b5? 200 17ms","method":"GET","requestID":"1c042854246a1a1c602edd9b549440d8","responseTime":17,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/faed0ca3-0267-42da-8883-faacf5db93b5? 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":"1c042854246a1a1c602edd9b549440d8"} 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/4e76fea7-77d5-488f-9dc5-5935693f3e59'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 41ms","method":"POST","requestID":"9fa11340-015b-11ef-b963-057e09d3e358","responseTime":41,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2ea889e-4f67-4ead-933a-71070f0beec8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.4283335} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.325325,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9fab4c70-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"75628dd886077e1a3672fd1cc46fdb49","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0"},{"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/faed0ca3-0267-42da-8883-faacf5db93b5"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling 200 13ms","method":"POST","requestID":"9fab4c70-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"75628dd886077e1a3672fd1cc46fdb49","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"75628dd886077e1a3672fd1cc46fdb49"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c52e9e42-7976-4099-a36e-b35ff56120ca","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.4440417} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.127076,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","rebac_allow":false,"scope_allow":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":"9fadbd70-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/faed0ca3-0267-42da-8883-faacf5db93b5/signaling 200 11ms","method":"POST","requestID":"9fadbd70-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5/signaling"} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","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/4e76fea7-77d5-488f-9dc5-5935693f3e59' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","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":"1d2cbaa3b2b8dc83fee16a0f70cf37d1","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/e08aeee6-7249-49a8-acdd-a3913e498cd0"},{"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/faed0ca3-0267-42da-8883-faacf5db93b5"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4e76fea7-77d5-488f-9dc5-5935693f3e59","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"72f6c987-4a18-45a5-80a0-40ddbdc37a08","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.486989} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.925949,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59","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":"9fb44d20-015b-11ef-b963-057e09d3e358"},"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/4e76fea7-77d5-488f-9dc5-5935693f3e59 200 9ms","method":"GET","requestID":"9fb44d20-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"1d2cbaa3b2b8dc83fee16a0f70cf37d1","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"1d2cbaa3b2b8dc83fee16a0f70cf37d1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bafa25eb-0650-4495-9476-f021a36ec8cd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.5119193} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.037692,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9fb81db0-015b-11ef-b963-057e09d3e358"},"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/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling 200 9ms","method":"POST","requestID":"9fb81db0-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de39ce33-41e8-4188-bbf4-9cf4f9a80f3a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.5234728} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.932049,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9fb9cb60-015b-11ef-b963-057e09d3e358"},"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/faed0ca3-0267-42da-8883-faacf5db93b5/signaling 200 10ms","method":"POST","requestID":"9fb9cb60-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5e292623c21c593f214a34a2bcabd4d6","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.185873,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"5e292623c21c593f214a34a2bcabd4d6"},"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/814655fe-fc46-448a-ae8d-5fd565d1046c"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/814655fe-fc46-448a-ae8d-5fd565d1046c 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":"5e292623c21c593f214a34a2bcabd4d6"} experiment-1 | {"level":"info","message":"GET /experiments/814655fe-fc46-448a-ae8d-5fd565d1046c 200 16ms","method":"GET","requestID":"5e292623c21c593f214a34a2bcabd4d6","responseTime":16,"status":200,"url":"/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"174bfe233d8ab7b2d25514e1e802a23e","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.973526,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"174bfe233d8ab7b2d25514e1e802a23e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.536621,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"9fc934b0-015b-11ef-b963-057e09d3e358"},"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/4e76fea7-77d5-488f-9dc5-5935693f3e59' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4e76fea7-77d5-488f-9dc5-5935693f3e59': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4e76fea7-77d5-488f-9dc5-5935693f3e59","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"405c3e8d-7074-456d-ba1e-f69bea720ac3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.6455863} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d13a1a10957bc52337dec179845e34ea","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45c1d2ee-9669-4d56-bc4d-08b2ed74f6d7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.646226} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"9fc934b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0"},{"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/faed0ca3-0267-42da-8883-faacf5db93b5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a5a8c06a0a5f52b32480da5ff1087775","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/e08aeee6-7249-49a8-acdd-a3913e498cd0"},{"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/faed0ca3-0267-42da-8883-faacf5db93b5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4e76fea7-77d5-488f-9dc5-5935693f3e59","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/4e76fea7-77d5-488f-9dc5-5935693f3e59 204 65ms","method":"DELETE","requestID":"9fc934b0-015b-11ef-b963-057e09d3e358","responseTime":65,"status":204,"url":"/peerconnections/4e76fea7-77d5-488f-9dc5-5935693f3e59"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe08aeee6-7249-49a8-acdd-a3913e498cd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ea32a73-4ebf-4917-b592-3107f21c3bd0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.7139149} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.978939,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0","object_type":"device","rebac_allow":false,"scope_allow":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":"9fd6a230-015b-11ef-b963-057e09d3e358"},"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/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling 200 14ms","method":"POST","requestID":"9fd6a230-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F814655fe-fc46-448a-ae8d-5fd565d1046c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F814655fe-fc46-448a-ae8d-5fd565d1046c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"63becbac-8ebc-40b9-8fef-6f8ed985f0be","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.7234607} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"714871e6-4e91-47e1-bca3-bebd9f636893","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.7236857} 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":"174bfe233d8ab7b2d25514e1e802a23e"},"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:39874","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffaed0ca3-0267-42da-8883-faacf5db93b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c058328-e919-4a98-856f-b19c4e7be8b1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.7296798} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.199126,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"9fd93a40-015b-11ef-b963-057e09d3e358"},"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/faed0ca3-0267-42da-8883-faacf5db93b5/signaling 200 12ms","method":"POST","requestID":"9fd93a40-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/faed0ca3-0267-42da-8883-faacf5db93b5/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/814655fe-fc46-448a-ae8d-5fd565d1046c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"174bfe233d8ab7b2d25514e1e802a23e"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2201","request_time":"0.677","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c9c12eae2e1d9dbbb8fe4736a56c9fad"} experiment-1 | {"level":"info","message":"DELETE /experiments/814655fe-fc46-448a-ae8d-5fd565d1046c 204 185ms","method":"DELETE","requestID":"174bfe233d8ab7b2d25514e1e802a23e","responseTime":185,"status":204,"url":"/experiments/814655fe-fc46-448a-ae8d-5fd565d1046c"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2199","request_time":"0.653","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0a8071f52c3e10b146110f315f15d992"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"d13a1a10957bc52337dec179845e34ea","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.142","http_referrer":"","http_user_agent":"node-fetch","requestID":"d13a1a10957bc52337dec179845e34ea"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"a5a8c06a0a5f52b32480da5ff1087775","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"a5a8c06a0a5f52b32480da5ff1087775"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/faed0ca3-0267-42da-8883-faacf5db93b5' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"aa1d40f79f13d9f6bedd3bf0ba66aa93","responseTime":5,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e08aeee6-7249-49a8-acdd-a3913e498cd0' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.942294,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"aa1d40f79f13d9f6bedd3bf0ba66aa93"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1a9b5a17-9523-4b56-9536-0aa17565d667","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.81732} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa1d40f79f13d9f6bedd3bf0ba66aa93"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dddc8405-7a7a-43f4-a1b5-8bf9dcff11ec","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.8241498} 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":"aa1d40f79f13d9f6bedd3bf0ba66aa93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"28847076-84e4-4811-8f56-5a248c761f6c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.8348496} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"64e24bce-e3ab-48c2-8ed8-fd970aa35496","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.83497} 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":"aa1d40f79f13d9f6bedd3bf0ba66aa93"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.834811737Z"}]},"request_id":"f21caebc-34e7-479b-9731-e64c840ef4dd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.8400602} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa1d40f79f13d9f6bedd3bf0ba66aa93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa1d40f79f13d9f6bedd3bf0ba66aa93"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"aa1d40f79f13d9f6bedd3bf0ba66aa93","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"22480c9fa9a0b4fcd4e38e76c0f46745","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.817256,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867850,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1MH0.QrD2zM-WXFoTfRffIzDCmfJkMk4gjeocn9CV_G7kMtc"} 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":"22480c9fa9a0b4fcd4e38e76c0f46745"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9b14742e-e9bc-4aa7-800b-595d6e8212f3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.866307} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22480c9fa9a0b4fcd4e38e76c0f46745"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c53938c0-fe3e-4a23-ae56-87128ca72d92","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.8716133} 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":"22480c9fa9a0b4fcd4e38e76c0f46745"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"127b5743-ac0d-4dda-92a4-57f7f68931a7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.8847735} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d2bf545-0285-49da-8f2a-a0cb434b3c9c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.8848934} 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":"22480c9fa9a0b4fcd4e38e76c0f46745"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.884742502Z"}]},"request_id":"dc603d1d-9ada-4dd0-86f3-b4d824669305","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867850.8897784} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22480c9fa9a0b4fcd4e38e76c0f46745"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"22480c9fa9a0b4fcd4e38e76c0f46745"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"22480c9fa9a0b4fcd4e38e76c0f46745","responseTime":44,"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":"a30718c84f59be1798f4c2473986cb5b","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"39fca5a0a6950bed12a58323e9f107a0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/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":"a30718c84f59be1798f4c2473986cb5b"} device-1 | {"level":"info","message":"OPTIONS /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/websocket 200 1ms","method":"OPTIONS","requestID":"a30718c84f59be1798f4c2473986cb5b","responseTime":1,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.007","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"39fca5a0a6950bed12a58323e9f107a0"} device-1 | {"level":"info","message":"OPTIONS /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/websocket 200 1ms","method":"OPTIONS","requestID":"39fca5a0a6950bed12a58323e9f107a0","responseTime":1,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"cd016b0514fd06c61bac7163d8594c00","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"accdf935059a4ff70ef3e44ef2eb6126","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.74927,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} 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":"cd016b0514fd06c61bac7163d8594c00"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.240662,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} 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":"accdf935059a4ff70ef3e44ef2eb6126"},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/websocket 200 19ms","method":"POST","requestID":"accdf935059a4ff70ef3e44ef2eb6126","responseTime":19,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/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":"accdf935059a4ff70ef3e44ef2eb6126"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.054","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cd016b0514fd06c61bac7163d8594c00"} device-1 | {"level":"info","message":"POST /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/websocket 200 45ms","method":"POST","requestID":"cd016b0514fd06c61bac7163d8594c00","responseTime":45,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e3322ab3fa37a6fbbd692fb9e45e6c9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.51666,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e3322ab3fa37a6fbbd692fb9e45e6c9"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.834811737Z"}]},"request_id":"8d3eaefb-5aa5-40be-95e4-137951d53b9d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867852.9265094} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e3322ab3fa37a6fbbd692fb9e45e6c9"},"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99? 200 15ms","method":"GET","requestID":"3e3322ab3fa37a6fbbd692fb9e45e6c9","responseTime":15,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99? 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":"3e3322ab3fa37a6fbbd692fb9e45e6c9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"80528bef8188484ebb295c62420f83e6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743065,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} 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":"80528bef8188484ebb295c62420f83e6"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.884742502Z"}]},"request_id":"4599e11b-21d4-49dd-804e-ff957bd5ae18","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867852.9462183} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80528bef8188484ebb295c62420f83e6"},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e? 200 14ms","method":"GET","requestID":"80528bef8188484ebb295c62420f83e6","responseTime":14,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e? 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":"80528bef8188484ebb295c62420f83e6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5c3bc3cd2836436e9ce30cb85c21b734","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:39874","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.175074,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} 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":"5c3bc3cd2836436e9ce30cb85c21b734"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"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:39874","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.120618,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a136ce70-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.657536,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} 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":"a1371c90-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.834811737Z"}]},"request_id":"92dc99dc-f820-4888-8e85-5dd094438a39","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.0281677} 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":"a136ce70-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.884742502Z"}]},"request_id":"d78b7059-feba-4ebb-bc12-5decd83808f7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.0295172} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1371c90-015b-11ef-b963-057e09d3e358"},"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99? 200 21ms","method":"GET","requestID":"a136ce70-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e? 200 20ms","method":"GET","requestID":"a1371c90-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"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/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.008559,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732723,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:36540","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1430370-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1432a80-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:36540","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.711629,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"18f09798-f097-4ad9-aa64-6334e0ac186c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1018822} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a1435190-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.834811737Z"}]},"request_id":"ba6df48e-03b3-48c4-8caa-8d8b558c2cdf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1068492} device-1 | {"level":"info","message":"POST /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling 200 10ms","method":"POST","requestID":"a1435190-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/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":"a1430370-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.884742502Z"}]},"request_id":"e440c50e-631e-4171-a558-f5e0b52a8771","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1078467} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1432a80-015b-11ef-b963-057e09d3e358"},"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:39874","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99? 200 21ms","method":"GET","requestID":"a1430370-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d147da1e-480c-4a7a-bf54-0615f9960f20","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1165612} device-1 | {"level":"info","message":"GET /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e? 200 21ms","method":"GET","requestID":"a1432a80-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.036945,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a1454d60-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc59b2cc1-97bf-4d6c-b80a-e12abe0a518f#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc59b2cc1-97bf-4d6c-b80a-e12abe0a518f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"5a2f8dba-9de4-460f-9c20-3177364f2184","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1180477} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a1d11685-7236-492b-a0cd-20764ee632dc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1184835} 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":"5c3bc3cd2836436e9ce30cb85c21b734"},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling 200 13ms","method":"POST","requestID":"a1454d60-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0ae79f78-e03a-4d10-8cc7-d554a5ea7680","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1253304} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.399947,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","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/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} 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":"a146fb10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5c3bc3cd2836436e9ce30cb85c21b734"} experiment-1 | {"level":"info","message":"POST /experiments? 201 170ms","method":"POST","requestID":"5c3bc3cd2836436e9ce30cb85c21b734","responseTime":170,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling 200 9ms","method":"POST","requestID":"a146fb10-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8bd66b21c69facf74c64a51234a52305","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2785d813-15c5-4667-8fde-412a0bf93a7f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1366198} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.383273,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a148a8c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.371552,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867853,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ"} 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":"8bd66b21c69facf74c64a51234a52305"},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling 200 11ms","method":"POST","requestID":"a148a8c0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"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":"f5199c89-6a34-4973-bf27-138c73623a88"},{"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":"732bac09-fb3b-4642-a7fb-a92f0a1ff622"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"87827cf6-f9a5-4cb4-90ae-6158a116b724"}]},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e"},{"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99"}],"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.834811737Z"}]},"request_id":"8338a3ed-53f0-4945-b733-a501ce0b753b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1446052} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8bd66b21c69facf74c64a51234a52305"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.854479,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99? 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":"8bd66b21c69facf74c64a51234a52305"} device-1 | {"level":"info","message":"GET /devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99? 200 15ms","method":"GET","requestID":"8bd66b21c69facf74c64a51234a52305","responseTime":15,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867852,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Mn0.SWdmB1wbi-uWgXiFBoMX_ivURqaEQ1TmGzWBezUTaLg"} 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":"a14aa490-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"711e8e3f4bf649d0ac52f7574f220698","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"b5f102ee-4f7b-4ae8-9409-1eea61355d5a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1576343} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"150c1c76-bba2-44a3-b8d3-01f1fd2c304e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1579566} 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":"a14aa490-015b-11ef-b963-057e09d3e358"},"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:39874","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.938573,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867853,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"711e8e3f4bf649d0ac52f7574f220698"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:10.884742502Z"}]},"request_id":"f638a124-d070-459f-bc33-d8d2ae10c8c1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.1671755} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"711e8e3f4bf649d0ac52f7574f220698"},"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/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f'"} 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":"a14aa490-015b-11ef-b963-057e09d3e358","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"711e8e3f4bf649d0ac52f7574f220698"} device-1 | {"level":"info","message":"GET /devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e? 200 37ms","method":"GET","requestID":"711e8e3f4bf649d0ac52f7574f220698","responseTime":37,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c64f32d-fecd-4c7d-9f83-30001ec37e76","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.219326} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.532445,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a15552f0-015b-11ef-b963-057e09d3e358"},"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling 200 8ms","method":"POST","requestID":"a15552f0-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4ec0d7d-8d60-496b-906f-272f3cc10cd8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.2298748} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.040161,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","rebac_allow":false,"scope_allow":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":"a156d990-015b-11ef-b963-057e09d3e358"},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling 200 8ms","method":"POST","requestID":"a156d990-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","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":"530ef2ee734d86f9b84b612efd5b8160","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e"},{"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"530ef2ee734d86f9b84b612efd5b8160","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"530ef2ee734d86f9b84b612efd5b8160"} device-1 | {"data":{"peerconnection":"a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","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/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","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":"7c55b795acf8d8a5f1251578408466d3","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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e"},{"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa4dd1b8c-d49a-4e0b-90d2-f1419c47387f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0fad55ca-455a-4915-9614-75259768c6ad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.4660332} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.807268,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","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":"a17ab540-015b-11ef-b963-057e09d3e358"},"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/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f 200 12ms","method":"GET","requestID":"a17ab540-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 35ms","method":"POST","requestID":"7c55b795acf8d8a5f1251578408466d3","responseTime":35,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"7c55b795acf8d8a5f1251578408466d3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a3a6bb9-2d5f-48b6-b3b7-5de1b2841017","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.4970043} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.104755,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a17f7030-015b-11ef-b963-057e09d3e358"},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling 200 12ms","method":"POST","requestID":"a17f7030-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da2f61e4-1be1-4dc1-839d-813a2b5bc3f7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.5119436} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.124212,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a181ba20-015b-11ef-b963-057e09d3e358"},"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling 200 11ms","method":"POST","requestID":"a181ba20-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"747bf59438f35a14a1508423cb1e3f26","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.264718,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867853,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ"} 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":"747bf59438f35a14a1508423cb1e3f26"},"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/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"747bf59438f35a14a1508423cb1e3f26"} experiment-1 | {"level":"info","message":"GET /experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f 200 14ms","method":"GET","requestID":"747bf59438f35a14a1508423cb1e3f26","responseTime":14,"status":200,"url":"/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e07048e411b14e2ccf41cd7c9151d882","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.111969,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867853,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ"} 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":"e07048e411b14e2ccf41cd7c9151d882"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.378878,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867853,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ"} 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":"a18eb270-015b-11ef-b963-057e09d3e358"},"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/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa4dd1b8c-d49a-4e0b-90d2-f1419c47387f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa4dd1b8c-d49a-4e0b-90d2-f1419c47387f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"11c8bd01-8231-499e-8a69-f1eca4cca24d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.6073503} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"907ad3e9-fe4f-4c29-ad4f-1caa1e6b7d81","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.6076589} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4811fc5cbc69371f9f045ed2e6992e3d","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":"a18eb270-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e"},{"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e9c967849b9814b180da6281f30694ee","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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e"},{"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"a4dd1b8c-d49a-4e0b-90d2-f1419c47387f","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/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f 204 45ms","method":"DELETE","requestID":"a18eb270-015b-11ef-b963-057e09d3e358","responseTime":45,"status":204,"url":"/peerconnections/a4dd1b8c-d49a-4e0b-90d2-f1419c47387f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf216267-3af4-4b3c-a3bc-d0d14bcaa41e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e040a1e8-2956-4f9e-ac4a-618ec332b088","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.6622748} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.669298,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a198c490-015b-11ef-b963-057e09d3e358"},"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/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling 200 11ms","method":"POST","requestID":"a198c490-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc59b2cc1-97bf-4d6c-b80a-e12abe0a518f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc59b2cc1-97bf-4d6c-b80a-e12abe0a518f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"d6d559ee-9f59-499c-a8b8-b7ddf617bcc2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.6708763} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf9528c8-9479-4298-80c5-939b39143aad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.6719956} 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":"e07048e411b14e2ccf41cd7c9151d882"},"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:39874","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3ce9c14d-9627-45e1-a6b9-60d55c783a99","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5f5eb54a-a41b-4e1c-b61b-d409595c8dc0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.6799107} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.454947,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99","object_type":"device","rebac_allow":false,"scope_allow":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":"a19ac060-015b-11ef-b963-057e09d3e358"},"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/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling 200 14ms","method":"POST","requestID":"a19ac060-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.169","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e07048e411b14e2ccf41cd7c9151d882"} experiment-1 | {"level":"info","message":"DELETE /experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f 204 166ms","method":"DELETE","requestID":"e07048e411b14e2ccf41cd7c9151d882","responseTime":166,"status":204,"url":"/experiments/c59b2cc1-97bf-4d6c-b80a-e12abe0a518f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"4811fc5cbc69371f9f045ed2e6992e3d","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.137","http_referrer":"","http_user_agent":"node-fetch","requestID":"4811fc5cbc69371f9f045ed2e6992e3d"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch","requestID":"e9c967849b9814b180da6281f30694ee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"e9c967849b9814b180da6281f30694ee","responseTime":134,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f77ab0fdd77afddcf7f32616904998f4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.329263,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867853,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2265","request_time":"0.859","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"53c00c3e9768631e5f5fc990156de041"} 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":"f77ab0fdd77afddcf7f32616904998f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2398","request_time":"0.883","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"41b53d7d39c389bdab24e36fe88ea67f"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3ce9c14d-9627-45e1-a6b9-60d55c783a99' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cf216267-3af4-4b3c-a3bc-d0d14bcaa41e' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9dcf856c-d1bd-4eed-8d12-b611e192eabd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.767998} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f77ab0fdd77afddcf7f32616904998f4"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b606f47-4827-4fd6-86c5-611457297b1f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.7718594} 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":"f77ab0fdd77afddcf7f32616904998f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"909501bd-bc81-48f5-8319-06476c69fb09","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.7814374} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a1e2030b-213b-4f1a-b701-78a69238749a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.7815504} 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":"f77ab0fdd77afddcf7f32616904998f4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.781417228Z"}]},"request_id":"70480b90-a165-48fe-a1e8-16ba51f3fcf4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.785566} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f77ab0fdd77afddcf7f32616904998f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"f77ab0fdd77afddcf7f32616904998f4","responseTime":39,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f77ab0fdd77afddcf7f32616904998f4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"79a7eb2c526a733402fd36c64abd1650","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.687108,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867853,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1M30.ZGKNFC50kpoODw3RJKgvwFh1Ak_ZVTcxKgI7hXptXpQ"} 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":"79a7eb2c526a733402fd36c64abd1650"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e9ef5557-3b06-4977-8cea-ad6bcf5830f3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.8078856} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79a7eb2c526a733402fd36c64abd1650"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4fd032af-a05b-4d6b-8824-d399ee286184","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.8115795} 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":"79a7eb2c526a733402fd36c64abd1650"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c2e06c20-6fef-4a9e-8de7-86c6b0b10d59","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.8211868} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1bf77e3a-2242-40ac-aee2-d21b3e64dee2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.821272} 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":"79a7eb2c526a733402fd36c64abd1650"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.821164104Z"}]},"request_id":"543e08ac-596b-49aa-acad-62169777faa2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867853.824718} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79a7eb2c526a733402fd36c64abd1650"},"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 34ms","method":"POST","requestID":"79a7eb2c526a733402fd36c64abd1650","responseTime":34,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"79a7eb2c526a733402fd36c64abd1650"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c0480acaf6ad27fccdb155612503e409","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/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":"c0480acaf6ad27fccdb155612503e409"} device-1 | {"level":"info","message":"OPTIONS /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/websocket 200 1ms","method":"OPTIONS","requestID":"c0480acaf6ad27fccdb155612503e409","responseTime":1,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"2b75a1bfe769f923d40ec76708f22fde","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693723,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b75a1bfe769f923d40ec76708f22fde"},"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":"2ed8058356f648dd3152573845c1737e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/2104f694-cb45-42ff-843e-f4a98b791499/websocket 200 1ms","method":"OPTIONS","requestID":"2ed8058356f648dd3152573845c1737e","responseTime":1,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2104f694-cb45-42ff-843e-f4a98b791499/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":"2ed8058356f648dd3152573845c1737e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e30c66bd7b8f9a363f148bb0e43571fc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.15415,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e30c66bd7b8f9a363f148bb0e43571fc"},"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/websocket 200 27ms","method":"POST","requestID":"2b75a1bfe769f923d40ec76708f22fde","responseTime":27,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/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":"2b75a1bfe769f923d40ec76708f22fde"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/2104f694-cb45-42ff-843e-f4a98b791499/websocket 200 22ms","method":"POST","requestID":"e30c66bd7b8f9a363f148bb0e43571fc","responseTime":22,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2104f694-cb45-42ff-843e-f4a98b791499/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":"e30c66bd7b8f9a363f148bb0e43571fc"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1e8edffc1df89a97ef87768bd78a2ce5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.76047,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e8edffc1df89a97ef87768bd78a2ce5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.781417228Z"}]},"request_id":"9706d03d-31c2-46cf-9a3d-635b2add4ae1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867855.8488052} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e8edffc1df89a97ef87768bd78a2ce5"},"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17? 200 19ms","method":"GET","requestID":"1e8edffc1df89a97ef87768bd78a2ce5","responseTime":19,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17? 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":"1e8edffc1df89a97ef87768bd78a2ce5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0fe7cd8c5f14346e8143d920cce4259e","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.272399,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0fe7cd8c5f14346e8143d920cce4259e"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.821164104Z"}]},"request_id":"9d041dd0-b02e-46d3-87cf-b0eb739e4f47","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867855.877779} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0fe7cd8c5f14346e8143d920cce4259e"},"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/2104f694-cb45-42ff-843e-f4a98b791499? 200 19ms","method":"GET","requestID":"0fe7cd8c5f14346e8143d920cce4259e","responseTime":19,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2104f694-cb45-42ff-843e-f4a98b791499? 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":"0fe7cd8c5f14346e8143d920cce4259e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"87e5e5f3bdadbfba5353ff1d881186a1","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:39874","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.250118,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} 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":"87e5e5f3bdadbfba5353ff1d881186a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"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:39874","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.276077,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a2f74320-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.307887,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} 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":"a2f79140-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.781417228Z"}]},"request_id":"4929b700-d96e-4e8d-8524-f20057d92cfc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867855.9661407} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a2f74320-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.821164104Z"}]},"request_id":"ac0d07f0-4c1b-41fb-981c-c5eef25b1797","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867855.9675872} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a2f79140-015b-11ef-b963-057e09d3e358"},"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17? 200 21ms","method":"GET","requestID":"a2f74320-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2104f694-cb45-42ff-843e-f4a98b791499? 200 20ms","method":"GET","requestID":"a2f79140-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"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/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.680037,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} 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":"a302dbe0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.240149,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:36540","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} 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":"a3032a00-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:36540","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.637787,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2aefa72d-a515-43ab-9117-733dfa359b77","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.042601} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","rebac_allow":false,"scope_allow":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":"a3037820-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.781417228Z"}]},"request_id":"e69e8e25-aca6-4176-9be0-e97d865f001e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.0469553} 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":"a302dbe0-015b-11ef-b963-057e09d3e358"},"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling 200 17ms","method":"POST","requestID":"a3037820-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.821164104Z"}]},"request_id":"784955b2-dccb-48c5-801b-f9932a277e89","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.0510924} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a3032a00-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e662d6a-6b88-41cf-9bff-f2aadd0700ca#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e662d6a-6b88-41cf-9bff-f2aadd0700ca","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"dd8af067-f183-44a3-a2ac-175d90213cb9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.0572267} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ae8b28ad-235d-44cb-b244-60a573056f99","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.0574787} device-1 | {"level":"info","message":"GET /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17? 200 29ms","method":"GET","requestID":"a302dbe0-015b-11ef-b963-057e09d3e358","responseTime":29,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2104f694-cb45-42ff-843e-f4a98b791499? 200 28ms","method":"GET","requestID":"a3032a00-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499?"} 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":"87e5e5f3bdadbfba5353ff1d881186a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"634af17b-881a-444d-bf95-b3e1f4c5a165","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.060793} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.22244,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"a306ac70-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1ed5d20-54ec-4323-b463-710f30fb1105","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.0663552} device-1 | {"level":"info","message":"POST /devices/2104f694-cb45-42ff-843e-f4a98b791499/signaling 200 11ms","method":"POST","requestID":"a306ac70-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.531744,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a307bde0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"87e5e5f3bdadbfba5353ff1d881186a1"} experiment-1 | {"level":"info","message":"POST /experiments? 201 178ms","method":"POST","requestID":"87e5e5f3bdadbfba5353ff1d881186a1","responseTime":178,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling 200 9ms","method":"POST","requestID":"a307bde0-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0f8fc9314f064813ac59141e73e34977","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a182e053-1d4f-4704-932b-a7144d490161","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.077426} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.540186,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a3096b90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.920631,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867856,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0f8fc9314f064813ac59141e73e34977"},"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/2104f694-cb45-42ff-843e-f4a98b791499/signaling 200 11ms","method":"POST","requestID":"a3096b90-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.781417228Z"}]},"request_id":"c70ca741-925a-4534-958a-be98e66784c4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.0853152} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"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":"0ecbb5ca-3e53-4d81-9042-be63d502b6f8"},{"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":"c90b77ba-2197-48d0-beca-6f36eb313fe8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6d7af8de-6ea6-4c32-b70b-b20dcc40b7ed"}]},"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/2104f694-cb45-42ff-843e-f4a98b791499"},{"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17"}],"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":"0f8fc9314f064813ac59141e73e34977"},"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"} device-1 | {"level":"info","message":"GET /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17? 200 16ms","method":"GET","requestID":"0f8fc9314f064813ac59141e73e34977","responseTime":16,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17? 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":"0f8fc9314f064813ac59141e73e34977"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.767552,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867855,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1NX0.pOLqBlVD1sqPdnKBcMttS_lMM6mc9U6m0rRYjXu4dH0"} 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":"a30bb580-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3800d57a24ab8c8c7e6f10cc02c563ed","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.18054,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867856,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3800d57a24ab8c8c7e6f10cc02c563ed"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"dae012a3-40ea-4ee2-8476-4371c6ef9ef0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.1018605} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad9f3284-37b2-406c-b75d-ea0005fc27a3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.1020644} 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":"a30bb580-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:13.821164104Z"}]},"request_id":"16c6c224-d8a3-484f-8d11-c7db4e07f8cd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.1071076} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3800d57a24ab8c8c7e6f10cc02c563ed"},"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/bc5783bc-9a1c-41da-9020-df71aca95bcc'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 42ms","method":"POST","requestID":"a30bb580-015b-11ef-b963-057e09d3e358","responseTime":42,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2104f694-cb45-42ff-843e-f4a98b791499? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3800d57a24ab8c8c7e6f10cc02c563ed"} device-1 | {"level":"info","message":"GET /devices/2104f694-cb45-42ff-843e-f4a98b791499? 200 35ms","method":"GET","requestID":"3800d57a24ab8c8c7e6f10cc02c563ed","responseTime":35,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"df56b7cd-bdf0-40d8-88e6-377d3b0f6462","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.1604316} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.987715,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a315eeb0-015b-11ef-b963-057e09d3e358"},"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling 200 10ms","method":"POST","requestID":"a315eeb0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9bd2daca-53f1-44a8-a451-4074c203ad32","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.172144} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.366875,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","rebac_allow":false,"scope_allow":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":"a317c370-015b-11ef-b963-057e09d3e358"},"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/2104f694-cb45-42ff-843e-f4a98b791499/signaling 200 9ms","method":"POST","requestID":"a317c370-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bc5783bc-9a1c-41da-9020-df71aca95bcc","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":"c46fe91d46db83f4986b0c955d99eada","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499"},{"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"c46fe91d46db83f4986b0c955d99eada","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"c46fe91d46db83f4986b0c955d99eada"} device-1 | {"data":{"peerconnection":"bc5783bc-9a1c-41da-9020-df71aca95bcc","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"bc5783bc-9a1c-41da-9020-df71aca95bcc","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/bc5783bc-9a1c-41da-9020-df71aca95bcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bc5783bc-9a1c-41da-9020-df71aca95bcc","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":"752145e09c5cd2be8f3b97de8bc21bdc","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/2104f694-cb45-42ff-843e-f4a98b791499"},{"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbc5783bc-9a1c-41da-9020-df71aca95bcc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"044ce610-7f69-470f-b967-eed67dc3dfda","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.3951645} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.288779,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc","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":"a339a350-015b-11ef-b963-057e09d3e358"},"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/bc5783bc-9a1c-41da-9020-df71aca95bcc 200 11ms","method":"GET","requestID":"a339a350-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"752145e09c5cd2be8f3b97de8bc21bdc","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.041","http_referrer":"","http_user_agent":"node-fetch","requestID":"752145e09c5cd2be8f3b97de8bc21bdc"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a5b8e9b-fb2a-4211-bd19-607a26538043","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.426877} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.250917,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a33e8550-015b-11ef-b963-057e09d3e358"},"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/2104f694-cb45-42ff-843e-f4a98b791499/signaling 200 12ms","method":"POST","requestID":"a33e8550-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d8c387b9-c8f3-48d7-a814-79284de56824","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.4408863} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.262613,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a340a830-015b-11ef-b963-057e09d3e358"},"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling 200 12ms","method":"POST","requestID":"a340a830-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"79de63ef08f500ad37e0abcf7b4ca495","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.295685,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867856,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY"} 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":"79de63ef08f500ad37e0abcf7b4ca495"},"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/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"79de63ef08f500ad37e0abcf7b4ca495"} experiment-1 | {"level":"info","message":"GET /experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca 200 16ms","method":"GET","requestID":"79de63ef08f500ad37e0abcf7b4ca495","responseTime":16,"status":200,"url":"/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"59c3eedec623a874c24e11209f017aa9","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.24396,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867856,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY"} 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":"59c3eedec623a874c24e11209f017aa9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.250687,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867856,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY"} 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":"a34e63d0-015b-11ef-b963-057e09d3e358"},"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/bc5783bc-9a1c-41da-9020-df71aca95bcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bc5783bc-9a1c-41da-9020-df71aca95bcc","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbc5783bc-9a1c-41da-9020-df71aca95bcc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbc5783bc-9a1c-41da-9020-df71aca95bcc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"86e81fa3-7722-4a29-95e3-db8289326dd6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.5495033} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e66ff6fcd9839f414d6eb390c07e4a3e","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df97cca4-35d7-4d54-ab13-21fd86926e62","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.5502386} 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/2104f694-cb45-42ff-843e-f4a98b791499"},{"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a34e63d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"77c39213a743aaab8d251895d3b6e4b5","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":"closed","url":"http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499"},{"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"bc5783bc-9a1c-41da-9020-df71aca95bcc","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/bc5783bc-9a1c-41da-9020-df71aca95bcc 204 60ms","method":"DELETE","requestID":"a34e63d0-015b-11ef-b963-057e09d3e358","responseTime":60,"status":204,"url":"/peerconnections/bc5783bc-9a1c-41da-9020-df71aca95bcc"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2104f694-cb45-42ff-843e-f4a98b791499","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6385fd5a-4dc3-48d7-90ca-8f24ab5456cf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.617982} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.001306,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2104f694-cb45-42ff-843e-f4a98b791499","object_type":"device","rebac_allow":false,"scope_allow":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":"a35b8330-015b-11ef-b963-057e09d3e358"},"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/2104f694-cb45-42ff-843e-f4a98b791499/signaling 200 14ms","method":"POST","requestID":"a35b8330-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/2104f694-cb45-42ff-843e-f4a98b791499/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e662d6a-6b88-41cf-9bff-f2aadd0700ca': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e662d6a-6b88-41cf-9bff-f2aadd0700ca","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"e152d9c3-84a4-4940-9f51-2a004c9dd026","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.6287427} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf75d40d-2694-4640-9607-8c11d4bee0f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.6292546} 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":"59c3eedec623a874c24e11209f017aa9"},"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:39874","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea0c8b22-6053-4df3-9706-ded2c9a4bf17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f1411dbe-e648-48ef-8997-57b92d05590b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.6379485} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.138912,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17","object_type":"device","rebac_allow":false,"scope_allow":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":"a35e4250-015b-11ef-b963-057e09d3e358"},"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/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling 200 16ms","method":"POST","requestID":"a35e4250-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca 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":"59c3eedec623a874c24e11209f017aa9"} experiment-1 | {"level":"info","message":"DELETE /experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca 204 184ms","method":"DELETE","requestID":"59c3eedec623a874c24e11209f017aa9","responseTime":184,"status":204,"url":"/experiments/9e662d6a-6b88-41cf-9bff-f2aadd0700ca"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"e66ff6fcd9839f414d6eb390c07e4a3e","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"e66ff6fcd9839f414d6eb390c07e4a3e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"77c39213a743aaab8d251895d3b6e4b5","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"77c39213a743aaab8d251895d3b6e4b5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"21cc5ff5350cc752e3e7a57e291dd20a","responseTime":6,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2398","request_time":"0.890","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8615073ba059a620bd533e0b9a66ac19"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2265","request_time":"0.905","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1487281cb64756af95deeed42883cd72"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ea0c8b22-6053-4df3-9706-ded2c9a4bf17' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.882282,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867856,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY"} 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":"21cc5ff5350cc752e3e7a57e291dd20a"},"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/2104f694-cb45-42ff-843e-f4a98b791499' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4e6dbee6-c07c-4ed9-a4b2-cab92b4b30f3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.7293413} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"21cc5ff5350cc752e3e7a57e291dd20a"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32c66bda-4453-4f60-be5b-bc8342690b2e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.7335966} 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":"21cc5ff5350cc752e3e7a57e291dd20a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"024d09d5-774c-475c-8014-8140419c0279","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.7425156} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d40cd2c-ca4e-4814-b221-78870394b887","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.7427547} 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":"21cc5ff5350cc752e3e7a57e291dd20a"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.742490860Z"}]},"request_id":"ebf4c4d3-9818-47ad-bdf8-bcdd8591b02b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.7468574} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"21cc5ff5350cc752e3e7a57e291dd20a"},"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 46ms","method":"POST","requestID":"21cc5ff5350cc752e3e7a57e291dd20a","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"21cc5ff5350cc752e3e7a57e291dd20a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"934e7dee2c058c9b4d7f505252894139","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.638557,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867856,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1Nn0.tomV2vEaHaMJKwXrU91Gam7RKtWV22uSo6KYaGEbOWY"} 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":"934e7dee2c058c9b4d7f505252894139"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e8453408-6fbb-49c0-8b28-b927bf1729d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.7699454} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"934e7dee2c058c9b4d7f505252894139"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c5932fd-a63e-4721-a871-fe171fe3c366","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.7747622} 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":"934e7dee2c058c9b4d7f505252894139"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"cd8b769e-2aa1-461b-b22f-78cdb855d46a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.78681} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe2e4c98-bbca-4d19-be13-e578cc89cecd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.78708} 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":"934e7dee2c058c9b4d7f505252894139"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.786787972Z"}]},"request_id":"bbf14ec8-6518-42f3-a352-7f676a52c268","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867856.792347} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"934e7dee2c058c9b4d7f505252894139"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"934e7dee2c058c9b4d7f505252894139"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"934e7dee2c058c9b4d7f505252894139","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1N30.iA1BAiIf3KWSP3zU0Mf0hBEg0RIVgIxBeCP4ngiEiJg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3f6eb7c4b1633f7aca76dcdbb02b0708","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689137,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867857,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1N30.iA1BAiIf3KWSP3zU0Mf0hBEg0RIVgIxBeCP4ngiEiJg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3f6eb7c4b1633f7aca76dcdbb02b0708"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.786787972Z"}]},"request_id":"fd547971-57d2-4360-b567-1e6d6937cab4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867857.282588} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3f6eb7c4b1633f7aca76dcdbb02b0708"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53b5165d-690d-400f-a57a-0698f9d14c3e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867857.2894635} 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":"3f6eb7c4b1633f7aca76dcdbb02b0708"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.786787972Z"}]},"request_id":"cf9feea7-2c6f-4311-9690-1eda5f898903","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867857.3117156} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3f6eb7c4b1633f7aca76dcdbb02b0708"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.049","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3f6eb7c4b1633f7aca76dcdbb02b0708"} device-1 | {"level":"info","message":"PATCH /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733 200 46ms","method":"PATCH","requestID":"3f6eb7c4b1633f7aca76dcdbb02b0708","responseTime":46,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1N30.iA1BAiIf3KWSP3zU0Mf0hBEg0RIVgIxBeCP4ngiEiJg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7001dc53f5e8d2009532c73c0996046c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.797392,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867857,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1N30.iA1BAiIf3KWSP3zU0Mf0hBEg0RIVgIxBeCP4ngiEiJg"} 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":"7001dc53f5e8d2009532c73c0996046c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/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":"7001dc53f5e8d2009532c73c0996046c"} device-1 | {"level":"info","message":"POST /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/websocket 200 14ms","method":"POST","requestID":"7001dc53f5e8d2009532c73c0996046c","responseTime":14,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733' 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":"e784c26cb22664a9d127882480d72652","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/websocket 200 1ms","method":"OPTIONS","requestID":"e784c26cb22664a9d127882480d72652","responseTime":1,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/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":"e784c26cb22664a9d127882480d72652"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"51da0c836cb610bafb5ec71dade0a3fd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.467253,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"51da0c836cb610bafb5ec71dade0a3fd"},"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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/websocket 200 32ms","method":"POST","requestID":"51da0c836cb610bafb5ec71dade0a3fd","responseTime":32,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.039","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"51da0c836cb610bafb5ec71dade0a3fd"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ba0b3d9acb8b709b1dae7bb5ebb8ad15","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.185513,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ba0b3d9acb8b709b1dae7bb5ebb8ad15"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.742490860Z"}]},"request_id":"1201040e-1eb3-44ff-a116-f00b03ff6995","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867858.8776834} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ba0b3d9acb8b709b1dae7bb5ebb8ad15"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69? 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":"ba0b3d9acb8b709b1dae7bb5ebb8ad15"} device-1 | {"level":"info","message":"GET /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69? 200 17ms","method":"GET","requestID":"ba0b3d9acb8b709b1dae7bb5ebb8ad15","responseTime":17,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"66b51ddd47bc7eb069ccf78bc2bbda30","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.556521,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} 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":"66b51ddd47bc7eb069ccf78bc2bbda30"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.786787972Z"}]},"request_id":"1e896805-612a-49b6-8d0e-d4f2401d843c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867858.907353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66b51ddd47bc7eb069ccf78bc2bbda30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733? 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":"66b51ddd47bc7eb069ccf78bc2bbda30"} device-1 | {"level":"info","message":"GET /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733? 200 22ms","method":"GET","requestID":"66b51ddd47bc7eb069ccf78bc2bbda30","responseTime":22,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"41fb978e2cce4876733a1f157fa93877","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:39874","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.275987,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} 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":"41fb978e2cce4876733a1f157fa93877"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"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:39874","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655022,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a4c48910-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.380882,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a4c4b020-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.742490860Z"}]},"request_id":"5d1af768-ecbc-4e37-89da-f1a86290bbfa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867858.9907022} 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":"a4c48910-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.786787972Z"}]},"request_id":"32eb4e13-ee02-4a92-9ac4-90601e254cee","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867858.9923027} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a4c4b020-015b-11ef-b963-057e09d3e358"},"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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69? 200 21ms","method":"GET","requestID":"a4c48910-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733? 200 21ms","method":"GET","requestID":"a4c4b020-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"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/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.746313,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} 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":"a4d09700-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.1873,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} 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":"a4d0e520-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.929709,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f46d5251-0191-4fb4-a0c9-86907ae5d9b4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.072723} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","rebac_allow":false,"scope_allow":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":"a4d15a50-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.742490860Z"}]},"request_id":"9469d561-24dc-4a8f-a758-ff16cf5bb519","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.0745592} 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":"a4d09700-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.786787972Z"}]},"request_id":"c09b32e0-347f-414f-81b0-09ce171237fe","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.079152} device-1 | {"level":"info","message":"POST /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling 200 20ms","method":"POST","requestID":"a4d15a50-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/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":"a4d0e520-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"6e9373d3-18d4-47c5-9078-ead300bc08d0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.0863526} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5d4b1688-7bbe-4e78-8586-96811ebde640","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.0866072} 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":"41fb978e2cce4876733a1f157fa93877"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} device-1 | {"level":"info","message":"GET /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69? 200 35ms","method":"GET","requestID":"a4d09700-015b-11ef-b963-057e09d3e358","responseTime":35,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733? 200 34ms","method":"GET","requestID":"a4d0e520-015b-11ef-b963-057e09d3e358","responseTime":34,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"08bc217f-4850-4dd0-84fc-9470d628bb98","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.093177} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.075018,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a4d551f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"41fb978e2cce4876733a1f157fa93877"} experiment-1 | {"level":"info","message":"POST /experiments? 201 178ms","method":"POST","requestID":"41fb978e2cce4876733a1f157fa93877","responseTime":178,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ec5506ea-05bd-4ae5-8f53-617cb6762130","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.1016476} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.172567,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling 200 16ms","method":"POST","requestID":"a4d551f0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a4d6b180-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ed811aff138f87eedc5938312be939f6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling 200 11ms","method":"POST","requestID":"a4d6b180-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689625,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867859,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ"} 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":"ed811aff138f87eedc5938312be939f6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e99e6623-ba31-4636-8ea9-0d2c7766b178","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.1137671} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.537489,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a4d8ad50-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.742490860Z"}]},"request_id":"61582777-2bd4-43f6-8001-81090f863c27","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.11533} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed811aff138f87eedc5938312be939f6"},"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling 200 12ms","method":"POST","requestID":"a4d8ad50-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69? 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":"ed811aff138f87eedc5938312be939f6"} device-1 | {"level":"info","message":"GET /devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69? 200 15ms","method":"GET","requestID":"ed811aff138f87eedc5938312be939f6","responseTime":15,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"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":"a02d372a-13d0-4657-bb3c-6b20bfe9d8e1"},{"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":"2c150202-9ace-481f-b891-d56c8892616a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5293b0ab-7d41-4388-9613-3dc1475864cf"}]},"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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69"},{"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e594362b2d52740c787068c15ebf8e85","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.653799,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867858,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OH0.JOzBEqseDtSWbC7CBaLKhZ8GVVmZu_IR9ij-A77dbXY"} 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":"a4db4560-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.621147,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867859,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e594362b2d52740c787068c15ebf8e85"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:16.786787972Z"}]},"request_id":"d8fdf0f0-9814-471f-a23b-02451ef171ec","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.1367486} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e594362b2d52740c787068c15ebf8e85"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733? 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":"e594362b2d52740c787068c15ebf8e85"} device-1 | {"level":"info","message":"GET /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733? 200 13ms","method":"GET","requestID":"e594362b2d52740c787068c15ebf8e85","responseTime":13,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"e3d9762f-5053-4cae-8bdc-ad947ec08a71","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.1406205} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"60530540-043f-46de-a429-0eaf3edfe3f2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.140845} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a4db4560-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"a4db4560-015b-11ef-b963-057e09d3e358","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"a41a4f6a-90eb-4f47-8d42-dfb4c671e639","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"971ec6bb-206a-4758-acb0-69e9be0d838d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.2122614} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.517822,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","rebac_allow":false,"scope_allow":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":"a4e7a170-015b-11ef-b963-057e09d3e358"},"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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling 200 14ms","method":"POST","requestID":"a4e7a170-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a41a4f6a-90eb-4f47-8d42-dfb4c671e639","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ae1404e3-a147-487c-8e11-f12e17ea9ba6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.2279093} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.945066,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2ded63b1947af64b30c584444ae8934a","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a4ea1270-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} 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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69"},{"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"2ded63b1947af64b30c584444ae8934a","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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":"2ded63b1947af64b30c584444ae8934a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling 200 19ms","method":"POST","requestID":"a4ea1270-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling"} device-1 | {"data":{"peerconnection":"a41a4f6a-90eb-4f47-8d42-dfb4c671e639","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a41a4f6a-90eb-4f47-8d42-dfb4c671e639","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/a41a4f6a-90eb-4f47-8d42-dfb4c671e639' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a41a4f6a-90eb-4f47-8d42-dfb4c671e639","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":"c1affd9b78f59293037640dbf1a9c7fe","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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69"},{"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa41a4f6a-90eb-4f47-8d42-dfb4c671e639","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9098a18b-d144-48d8-a111-db7260dbb2d9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.2935295} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.181537,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639","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":"a4f42490-015b-11ef-b963-057e09d3e358"},"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/a41a4f6a-90eb-4f47-8d42-dfb4c671e639 200 8ms","method":"GET","requestID":"a4f42490-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"c1affd9b78f59293037640dbf1a9c7fe","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"c1affd9b78f59293037640dbf1a9c7fe"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fb42f9ca-fd76-49a3-89bd-29359de4c0c4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.3166459} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.105506,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","rebac_allow":false,"scope_allow":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":"a4f7a700-015b-11ef-b963-057e09d3e358"},"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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling 200 7ms","method":"POST","requestID":"a4f7a700-015b-11ef-b963-057e09d3e358","responseTime":7,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a06d145-1ad5-44f0-925c-ef922ce09aa6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.3259985} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.05886,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","rebac_allow":false,"scope_allow":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":"a4f92da0-015b-11ef-b963-057e09d3e358"},"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling 200 7ms","method":"POST","requestID":"a4f92da0-015b-11ef-b963-057e09d3e358","responseTime":7,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2b3dd45e6c525ee22fc01ba8535fc4e5","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.149247,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867859,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ"} 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":"2b3dd45e6c525ee22fc01ba8535fc4e5"},"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/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2b3dd45e6c525ee22fc01ba8535fc4e5"} experiment-1 | {"level":"info","message":"GET /experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e 200 15ms","method":"GET","requestID":"2b3dd45e6c525ee22fc01ba8535fc4e5","responseTime":15,"status":200,"url":"/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b2e38165c47daba3a8afd1176d1f5bc0","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.391087,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867859,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ"} 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":"b2e38165c47daba3a8afd1176d1f5bc0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.189866,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867859,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ"} 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":"a508e510-015b-11ef-b963-057e09d3e358"},"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/a41a4f6a-90eb-4f47-8d42-dfb4c671e639' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a41a4f6a-90eb-4f47-8d42-dfb4c671e639","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":"9c73b4e61cbd7fc1410e98dbb91f269e","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":"bb74f67f99119a29e0ecb913acacf2fb","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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69"},{"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa41a4f6a-90eb-4f47-8d42-dfb4c671e639': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa41a4f6a-90eb-4f47-8d42-dfb4c671e639","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"61f4b2ca-a999-469b-b1ac-3d41dace35ef","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.4559734} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ac2993a-f726-4819-8142-0062c3192dda","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.4563031} 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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69"},{"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a508e510-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"data":{"peerconnection":"a41a4f6a-90eb-4f47-8d42-dfb4c671e639","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/a41a4f6a-90eb-4f47-8d42-dfb4c671e639 204 64ms","method":"DELETE","requestID":"a508e510-015b-11ef-b963-057e09d3e358","responseTime":64,"status":204,"url":"/peerconnections/a41a4f6a-90eb-4f47-8d42-dfb4c671e639"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0fe90dda-4f93-407c-9ca5-9e8c59d96329","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.5192537} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.97367,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69","object_type":"device","rebac_allow":false,"scope_allow":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":"a5162b80-015b-11ef-b963-057e09d3e358"},"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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling 200 14ms","method":"POST","requestID":"a5162b80-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"a74b6878-f234-454c-bc80-489f2c56a152","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.5313766} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e11fec7-28f3-4ce1-8b41-d2d77b15936f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.5320737} 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":"b2e38165c47daba3a8afd1176d1f5bc0"},"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:39874","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F95cdf78a-fe5f-444e-ab9b-ad04fb35d733","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e5b026a3-832d-40fc-b555-ee75b0fe8ca0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.5392144} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.883453,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733","object_type":"device","rebac_allow":false,"scope_allow":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":"a518eaa0-015b-11ef-b963-057e09d3e358"},"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling 200 18ms","method":"POST","requestID":"a518eaa0-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/95cdf78a-fe5f-444e-ab9b-ad04fb35d733/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b2e38165c47daba3a8afd1176d1f5bc0"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2078","request_time":"2.254","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5de1849a9e81f207d9778999f6216df9"} experiment-1 | {"level":"info","message":"DELETE /experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e 204 185ms","method":"DELETE","requestID":"b2e38165c47daba3a8afd1176d1f5bc0","responseTime":185,"status":204,"url":"/experiments/5eb3d9aa-bdb7-493a-8a3e-57d4eaa19a0e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"9c73b4e61cbd7fc1410e98dbb91f269e","responseTime":141,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"bb74f67f99119a29e0ecb913acacf2fb","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"9c73b4e61cbd7fc1410e98dbb91f269e"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"bb74f67f99119a29e0ecb913acacf2fb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.759","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6d222482132183a0a9bdc26e374b48ce"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"82af4002fde5a80d48ab4c152f87b062","responseTime":8,"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/95cdf78a-fe5f-444e-ab9b-ad04fb35d733' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.500977,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867859,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ"} 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":"82af4002fde5a80d48ab4c152f87b062"},"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/4e1dc26f-c5d7-4e69-8545-a0b25ee47e69' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ee761bdd-b331-491c-b05c-f44ecbb0d04d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.6278696} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82af4002fde5a80d48ab4c152f87b062"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"539d6bd9-97e7-42f1-becb-735e54ee0980","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.633522} 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":"82af4002fde5a80d48ab4c152f87b062"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"e15529f6-7ec1-4638-867d-cb0e53539c3a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.64825} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3759461-7dbb-4ac4-9d2f-dfc69f318bbe","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.6483681} 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":"82af4002fde5a80d48ab4c152f87b062"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.648220635Z"}]},"request_id":"41eba538-41b9-49aa-9614-1a21e99ba2e4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.6537292} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82af4002fde5a80d48ab4c152f87b062"},"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":"82af4002fde5a80d48ab4c152f87b062","responseTime":51,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"82af4002fde5a80d48ab4c152f87b062"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8c703b6f218f6ee43f9b875c45844fce","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.721415,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867859,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg1OX0.EBiRY1wpwd8QTOFQgcyfmGZEjF2ll0XQP3yEnvScsfQ"} 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":"8c703b6f218f6ee43f9b875c45844fce"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9bf33db7-472f-4a90-a562-789917cf4529","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.6767356} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c703b6f218f6ee43f9b875c45844fce"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b64898b5-5bd4-458e-8286-cf9e72d73fdf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.6819704} 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":"8c703b6f218f6ee43f9b875c45844fce"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"da93358e-513a-4946-b2e0-3c2f610f7c84","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.690865} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0fbe8d06-fc24-4c1c-8aa8-d63a1e97e44b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.6911178} 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":"8c703b6f218f6ee43f9b875c45844fce"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.690842615Z"}]},"request_id":"99648078-d70c-4947-8612-4a16570a6ab8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867859.6952436} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8c703b6f218f6ee43f9b875c45844fce"},"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 36ms","method":"POST","requestID":"8c703b6f218f6ee43f9b875c45844fce","responseTime":36,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c703b6f218f6ee43f9b875c45844fce"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MH0.3KgPDItCZVyaltpt9M0fcZzUO5jb2WjXfqSkzkS1YT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4a5dc82fc3fd82d28b4f9276f61542ba","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:20Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.86044,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867860,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MH0.3KgPDItCZVyaltpt9M0fcZzUO5jb2WjXfqSkzkS1YT8"} 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":"4a5dc82fc3fd82d28b4f9276f61542ba"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.690842615Z"}]},"request_id":"681c0f3b-07cb-4ddf-9426-e223149a8c0c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867860.1849124} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a5dc82fc3fd82d28b4f9276f61542ba"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1778f318-8faf-418a-a5fb-cefe8265b103","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867860.1929474} 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":"4a5dc82fc3fd82d28b4f9276f61542ba"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.690842615Z"}]},"request_id":"1a077de9-0a59-426a-a6ff-4aad9f54e5af","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867860.2198606} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a5dc82fc3fd82d28b4f9276f61542ba"},"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/da531fdb-56df-4cdd-92e4-5d8375716c84 200 50ms","method":"PATCH","requestID":"4a5dc82fc3fd82d28b4f9276f61542ba","responseTime":50,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84"} gateway-1 | {"time_local":"23/Apr/2024:10:24:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/da531fdb-56df-4cdd-92e4-5d8375716c84 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":"4a5dc82fc3fd82d28b4f9276f61542ba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MH0.3KgPDItCZVyaltpt9M0fcZzUO5jb2WjXfqSkzkS1YT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9c1ce8f9af701e5e5e0a8061596b5548","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:20Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.289873,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867860,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MH0.3KgPDItCZVyaltpt9M0fcZzUO5jb2WjXfqSkzkS1YT8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9c1ce8f9af701e5e5e0a8061596b5548"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/da531fdb-56df-4cdd-92e4-5d8375716c84/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":"9c1ce8f9af701e5e5e0a8061596b5548"} device-1 | {"level":"info","message":"POST /devices/da531fdb-56df-4cdd-92e4-5d8375716c84/websocket 200 21ms","method":"POST","requestID":"9c1ce8f9af701e5e5e0a8061596b5548","responseTime":21,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84' 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":"0903a063fe0a75ccdf000e90c3b320a0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/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":"0903a063fe0a75ccdf000e90c3b320a0"} device-1 | {"level":"info","message":"OPTIONS /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/websocket 200 1ms","method":"OPTIONS","requestID":"0903a063fe0a75ccdf000e90c3b320a0","responseTime":1,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"52d48a13bc6f308e41f90fe053b9b889","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.253147,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"52d48a13bc6f308e41f90fe053b9b889"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/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":"52d48a13bc6f308e41f90fe053b9b889"} device-1 | {"level":"info","message":"POST /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/websocket 200 31ms","method":"POST","requestID":"52d48a13bc6f308e41f90fe053b9b889","responseTime":31,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8cfc3ff6ff85c74c9215393bc64bd0bf","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.235609,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8cfc3ff6ff85c74c9215393bc64bd0bf"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.648220635Z"}]},"request_id":"72bad8ab-59c9-4439-8bd6-7133de4c9878","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.7468388} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8cfc3ff6ff85c74c9215393bc64bd0bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8? 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":"8cfc3ff6ff85c74c9215393bc64bd0bf"} device-1 | {"level":"info","message":"GET /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8? 200 18ms","method":"GET","requestID":"8cfc3ff6ff85c74c9215393bc64bd0bf","responseTime":18,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"57454146c779d02cfd43fa94e2a15ec1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.396476,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57454146c779d02cfd43fa94e2a15ec1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.690842615Z"}]},"request_id":"00d7b29c-98ea-4229-8c86-4be9a9625979","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.7722564} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57454146c779d02cfd43fa94e2a15ec1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/da531fdb-56df-4cdd-92e4-5d8375716c84? 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":"57454146c779d02cfd43fa94e2a15ec1"} device-1 | {"level":"info","message":"GET /devices/da531fdb-56df-4cdd-92e4-5d8375716c84? 200 18ms","method":"GET","requestID":"57454146c779d02cfd43fa94e2a15ec1","responseTime":18,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b26899269760da7dfcccf34314e454bf","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:39874","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.372362,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} 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":"b26899269760da7dfcccf34314e454bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"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:39874","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.193905,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a67a9d80-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.448871,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a67ac490-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.648220635Z"}]},"request_id":"674e1107-6b4b-4388-8662-c9df800c66b3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.859899} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a67a9d80-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.690842615Z"}]},"request_id":"0c77ebdf-4918-45ac-897b-b1c2b70c1d8a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.8611393} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a67ac490-015b-11ef-b963-057e09d3e358"},"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/dd2f5992-043e-40dd-b497-4aa41c9942e8? 200 20ms","method":"GET","requestID":"a67a9d80-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/da531fdb-56df-4cdd-92e4-5d8375716c84? 200 20ms","method":"GET","requestID":"a67ac490-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"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:39874","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.5681,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a686d280-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.364679,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} 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":"a68720a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.301602,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"974ac46e-3e43-47c7-b4bd-7a0b3617ebe7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9432297} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","rebac_allow":false,"scope_allow":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":"a68795d0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.648220635Z"}]},"request_id":"bf6acdbc-b3d6-44ff-b777-c2e9493af0bb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9471269} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.690842615Z"}]},"request_id":"9c7a1f5a-f95c-4466-9482-b1ea66043b5a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9492517} 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":"a686d280-015b-11ef-b963-057e09d3e358"},"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":"a68720a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98c0a3f-fbd9-4588-937e-a5db56da24bf#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98c0a3f-fbd9-4588-937e-a5db56da24bf","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c0f3c4a6-26e4-4e47-8162-0c6d3634bc43","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9568355} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f074c0f1-5cc7-455a-ba09-02d51d69763b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9571743} 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":"b26899269760da7dfcccf34314e454bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling 200 29ms","method":"POST","requestID":"a68795d0-015b-11ef-b963-057e09d3e358","responseTime":29,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8? 200 35ms","method":"GET","requestID":"a686d280-015b-11ef-b963-057e09d3e358","responseTime":35,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/da531fdb-56df-4cdd-92e4-5d8375716c84? 200 35ms","method":"GET","requestID":"a68720a0-015b-11ef-b963-057e09d3e358","responseTime":35,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 189ms","method":"POST","requestID":"b26899269760da7dfcccf34314e454bf","responseTime":189,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b26899269760da7dfcccf34314e454bf"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2b8384d5-a740-49d5-b420-369cea9fde86","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9784408} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.043793,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","rebac_allow":false,"scope_allow":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":"a68d3b20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90ce4813-6f60-483a-9031-3247bcb07ac7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9810421} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.490419,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7a67345aa377b39c4fd8277b45b4867d","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","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 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":"a68db050-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.09977,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:21Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling 200 19ms","method":"POST","requestID":"a68d3b20-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} 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":"7a67345aa377b39c4fd8277b45b4867d"},"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/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling 200 19ms","method":"POST","requestID":"a68db050-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.648220635Z"}]},"request_id":"d0ad0ce9-4005-4618-b754-42b14d271bf9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867861.9948885} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a67345aa377b39c4fd8277b45b4867d"},"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:39874","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:21Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8? 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":"7a67345aa377b39c4fd8277b45b4867d"} device-1 | {"level":"info","message":"GET /devices/dd2f5992-043e-40dd-b497-4aa41c9942e8? 200 17ms","method":"GET","requestID":"7a67345aa377b39c4fd8277b45b4867d","responseTime":17,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fdb36ccc-5620-441b-b631-fd6b5bf421b0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.0018995} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.509836,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a69132c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"77de73e44bc3473248efc77f68961b83","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling 200 11ms","method":"POST","requestID":"a69132c0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"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":"514cc063-b387-4f0d-bc0c-16b7b1623d41"},{"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":"ecbf31b5-efe3-45fa-86b0-a94877c09a54"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"f35450ae-0a23-4c3d-b3f2-3fe57e5c33bf"}]},"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/dd2f5992-043e-40dd-b497-4aa41c9942e8"},{"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/da531fdb-56df-4cdd-92e4-5d8375716c84"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.959581,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867862,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"77de73e44bc3473248efc77f68961b83"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.704527,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867861,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2MX0.0JcGP0MFkht83V00mK_pUVjp2Aw_xk4DfDS4LqAx0hs"} 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":"a69355a0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:19.690842615Z"}]},"request_id":"2ff0b97d-d8b5-410d-909d-c03064ee0c9b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.0171719} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"77de73e44bc3473248efc77f68961b83"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/da531fdb-56df-4cdd-92e4-5d8375716c84? 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":"77de73e44bc3473248efc77f68961b83"} device-1 | {"level":"info","message":"GET /devices/da531fdb-56df-4cdd-92e4-5d8375716c84? 200 15ms","method":"GET","requestID":"77de73e44bc3473248efc77f68961b83","responseTime":15,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"1ae7f8b8-eba0-444b-af0b-eadba1d085bd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.0250106} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4755fdba-e3e5-4112-bb3d-3545cd080e58","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.0255117} 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":"a69355a0-015b-11ef-b963-057e09d3e358"},"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/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8'"} 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":"a69355a0-015b-11ef-b963-057e09d3e358","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"} device-1 | {"data":{"peerconnection":"6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4ba6695-4308-4ddc-a3ae-fc17d2c637c4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.0788162} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.834075,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a69d19a0-015b-11ef-b963-057e09d3e358"},"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/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling 200 10ms","method":"POST","requestID":"a69d19a0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"723cd1a225a5d9555de623356a2130af","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/dd2f5992-043e-40dd-b497-4aa41c9942e8"},{"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/da531fdb-56df-4cdd-92e4-5d8375716c84"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8"}}},"level":"info","message":"received a callback"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6a553f08-638d-4eee-b4ef-df056b4d6ba1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.0929258} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.722327,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a69f3c80-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"723cd1a225a5d9555de623356a2130af","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"723cd1a225a5d9555de623356a2130af"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling 200 12ms","method":"POST","requestID":"a69f3c80-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling"} device-1 | {"data":{"peerconnection":"6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","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/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","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":"3bd5ed39810051f1264e35909d8e1e98","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/dd2f5992-043e-40dd-b497-4aa41c9942e8"},{"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/da531fdb-56df-4cdd-92e4-5d8375716c84"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"52fefbb2-e77d-431c-8597-e00d4ee109f9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.151736} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.107045,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","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":"a6a86440-015b-11ef-b963-057e09d3e358"},"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/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8 200 7ms","method":"GET","requestID":"a6a86440-015b-11ef-b963-057e09d3e358","responseTime":7,"status":200,"url":"/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 24ms","method":"POST","requestID":"3bd5ed39810051f1264e35909d8e1e98","responseTime":24,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch","requestID":"3bd5ed39810051f1264e35909d8e1e98"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"18c8356f-8862-4a10-936d-2d0b945a1a6e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.1728997} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.041656,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","rebac_allow":false,"scope_allow":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":"a6ab9890-015b-11ef-b963-057e09d3e358"},"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/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling 200 7ms","method":"POST","requestID":"a6ab9890-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"443f2613-f947-4afa-90b7-4c274267c951","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.1832025} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.857268,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a6acf820-015b-11ef-b963-057e09d3e358"},"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/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling 200 9ms","method":"POST","requestID":"a6acf820-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"daa2b8811a7b77aeb4a778afc9d93fd3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.261297,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867862,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo"} 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":"daa2b8811a7b77aeb4a778afc9d93fd3"},"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/c98c0a3f-fbd9-4588-937e-a5db56da24bf"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf 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":"daa2b8811a7b77aeb4a778afc9d93fd3"} experiment-1 | {"level":"info","message":"GET /experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf 200 16ms","method":"GET","requestID":"daa2b8811a7b77aeb4a778afc9d93fd3","responseTime":16,"status":200,"url":"/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"46da4675d48802732fea67e6448c2b63","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.080885,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867862,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo"} 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":"46da4675d48802732fea67e6448c2b63"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.352283,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867862,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo"} 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":"a6bd72e0-015b-11ef-b963-057e09d3e358"},"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/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","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":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6af9ba4f-a13a-476b-9633-f1ce1e3f82c8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"2a08a7cd-e849-4bfe-95cd-73c4ef8b21ae","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.3099146} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"47b426684ee765425fe1ca21002daf74","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"86480592-ca7d-49a1-abd2-9f35e0aba87a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.3105376} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/dd2f5992-043e-40dd-b497-4aa41c9942e8"},{"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/da531fdb-56df-4cdd-92e4-5d8375716c84"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"539097cb70c312db75915e5aff1fa9d8","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":"a6bd72e0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","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/dd2f5992-043e-40dd-b497-4aa41c9942e8"},{"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/da531fdb-56df-4cdd-92e4-5d8375716c84"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"6af9ba4f-a13a-476b-9633-f1ce1e3f82c8","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/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8 204 60ms","method":"DELETE","requestID":"a6bd72e0-015b-11ef-b963-057e09d3e358","responseTime":60,"status":204,"url":"/peerconnections/6af9ba4f-a13a-476b-9633-f1ce1e3f82c8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd2f5992-043e-40dd-b497-4aa41c9942e8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cc7ea52d-6cd2-41fd-8c97-1d381208c57d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.3761854} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.880725,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8","object_type":"device","rebac_allow":false,"scope_allow":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":"a6ca4420-015b-11ef-b963-057e09d3e358"},"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/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling 200 14ms","method":"POST","requestID":"a6ca4420-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98c0a3f-fbd9-4588-937e-a5db56da24bf': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98c0a3f-fbd9-4588-937e-a5db56da24bf","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"ede01370-b59c-4c7b-9713-a04794be348a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.3885183} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1811d8a-b90c-4c79-9bf6-a6ae9a18d769","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.3889332} 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":"46da4675d48802732fea67e6448c2b63"},"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:39874","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fda531fdb-56df-4cdd-92e4-5d8375716c84","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"977f2ef4-28ba-4e37-a56e-5942dc9e0b55","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.3931828} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.641598,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/da531fdb-56df-4cdd-92e4-5d8375716c84","object_type":"device","rebac_allow":false,"scope_allow":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":"a6ccdc30-015b-11ef-b963-057e09d3e358"},"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/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling 200 12ms","method":"POST","requestID":"a6ccdc30-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/da531fdb-56df-4cdd-92e4-5d8375716c84/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf 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":"46da4675d48802732fea67e6448c2b63"} experiment-1 | {"level":"info","message":"DELETE /experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf 204 180ms","method":"DELETE","requestID":"46da4675d48802732fea67e6448c2b63","responseTime":180,"status":204,"url":"/experiments/c98c0a3f-fbd9-4588-937e-a5db56da24bf"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2212","request_time":"2.197","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3c9af436458d566351f51d8a5d843452"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"47b426684ee765425fe1ca21002daf74","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"47b426684ee765425fe1ca21002daf74"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"539097cb70c312db75915e5aff1fa9d8","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"539097cb70c312db75915e5aff1fa9d8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"461e4830a74323b043a450fff906f5fd","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.993341,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867862,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.752","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7e29d8fc649a8a7fe95b4e7ca69764f6"} 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":"461e4830a74323b043a450fff906f5fd"},"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/da531fdb-56df-4cdd-92e4-5d8375716c84' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"35d87959-6266-40f6-91e8-9e1b8d58715b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.4783828} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"461e4830a74323b043a450fff906f5fd"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b6f9a93-00fd-43c2-b69f-d6a41f3c5d16","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.4832299} 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":"461e4830a74323b043a450fff906f5fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/dd2f5992-043e-40dd-b497-4aa41c9942e8' closed"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"e2b96b72-3a88-434b-a3c1-61bc773ea9d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.495882} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4f53f7c-cda7-421e-bbbc-47ed8f7d3458","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.4959853} 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":"461e4830a74323b043a450fff906f5fd"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.495856525Z"}]},"request_id":"aabe8020-6305-4136-afef-6d98396f961c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.5005033} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"461e4830a74323b043a450fff906f5fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:22 +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":"461e4830a74323b043a450fff906f5fd"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"461e4830a74323b043a450fff906f5fd","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bb8d97a71e880c9a445bf4f651f914b7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.636007,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867862,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Mn0.MjAPr1Kye6Qw84VP4D_Dm3mVHsWvUWwvWocQFkwg8xo"} 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":"bb8d97a71e880c9a445bf4f651f914b7"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"48e87327-c6d3-4f14-b7bf-9f125cee51c9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.5233934} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bb8d97a71e880c9a445bf4f651f914b7"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"abfddd59-559d-43dd-894f-0ccf3e964f49","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.5285919} 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":"bb8d97a71e880c9a445bf4f651f914b7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"c2a82349-2f1a-4cad-b2ac-224efd422f5a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.5376077} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d4495f7-4769-4c22-919f-4ba2a116cccc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.5376902} 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":"bb8d97a71e880c9a445bf4f651f914b7"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.537574731Z"}]},"request_id":"ffed5aa5-4ce1-4046-b34f-3c1539d20ab2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867862.5418315} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bb8d97a71e880c9a445bf4f651f914b7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"bb8d97a71e880c9a445bf4f651f914b7","responseTime":37,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bb8d97a71e880c9a445bf4f651f914b7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2M30.vcXXiZxO30xfAPjXwRfvUFIrud9n1F7RjzULXIskG9Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"79754e7f72b00d94d04091abd2d3085c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.888814,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867863,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2M30.vcXXiZxO30xfAPjXwRfvUFIrud9n1F7RjzULXIskG9Y"} 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":"79754e7f72b00d94d04091abd2d3085c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.495856525Z"}]},"request_id":"e99009ab-12fe-4c83-99b8-244f10855227","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867863.040534} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79754e7f72b00d94d04091abd2d3085c"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"739d7f6e-fe5f-47e1-a392-2ee0e7af13f9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867863.0461056} 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":"79754e7f72b00d94d04091abd2d3085c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.495856525Z"}]},"request_id":"682ea348-7ced-46ff-bb34-001600101ff2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867863.067521} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0157ac7c-3f4b-4698-917d-3752b869b606 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"79754e7f72b00d94d04091abd2d3085c"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"79754e7f72b00d94d04091abd2d3085c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"PATCH /devices/0157ac7c-3f4b-4698-917d-3752b869b606 200 43ms","method":"PATCH","requestID":"79754e7f72b00d94d04091abd2d3085c","responseTime":43,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2M30.vcXXiZxO30xfAPjXwRfvUFIrud9n1F7RjzULXIskG9Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ff0412a2b5ed643715de0aa62785a5e7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:23Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.299599,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867863,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2M30.vcXXiZxO30xfAPjXwRfvUFIrud9n1F7RjzULXIskG9Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff0412a2b5ed643715de0aa62785a5e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0157ac7c-3f4b-4698-917d-3752b869b606/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":"ff0412a2b5ed643715de0aa62785a5e7"} device-1 | {"level":"info","message":"POST /devices/0157ac7c-3f4b-4698-917d-3752b869b606/websocket 200 23ms","method":"POST","requestID":"ff0412a2b5ed643715de0aa62785a5e7","responseTime":23,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606' 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":"df184e176936c2652267d27ba6c9526e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6268ed05-97e8-4087-92f0-44054f33ce6a/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":"df184e176936c2652267d27ba6c9526e"} device-1 | {"level":"info","message":"OPTIONS /devices/6268ed05-97e8-4087-92f0-44054f33ce6a/websocket 200 1ms","method":"OPTIONS","requestID":"df184e176936c2652267d27ba6c9526e","responseTime":1,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"02869bbe03d22b5f312c45a7d0a161ee","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.22578,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} 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":"02869bbe03d22b5f312c45a7d0a161ee"},"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/6268ed05-97e8-4087-92f0-44054f33ce6a/websocket 200 33ms","method":"POST","requestID":"02869bbe03d22b5f312c45a7d0a161ee","responseTime":33,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6268ed05-97e8-4087-92f0-44054f33ce6a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"02869bbe03d22b5f312c45a7d0a161ee"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a8dc45a59d44081f545eb26a8fa1118b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.809917,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a8dc45a59d44081f545eb26a8fa1118b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.495856525Z"}]},"request_id":"fed53252-ea6c-4a53-8575-b580b56d8da5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.6129045} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a8dc45a59d44081f545eb26a8fa1118b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0157ac7c-3f4b-4698-917d-3752b869b606? 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":"a8dc45a59d44081f545eb26a8fa1118b"} device-1 | {"level":"info","message":"GET /devices/0157ac7c-3f4b-4698-917d-3752b869b606? 200 17ms","method":"GET","requestID":"a8dc45a59d44081f545eb26a8fa1118b","responseTime":17,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3a9631cfdc446fce3d4246c55b426381","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.167996,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a9631cfdc446fce3d4246c55b426381"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.537574731Z"}]},"request_id":"48304815-14c2-4d6c-9b7b-2e5ef5cbdde9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.6370552} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a9631cfdc446fce3d4246c55b426381"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6268ed05-97e8-4087-92f0-44054f33ce6a? 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":"3a9631cfdc446fce3d4246c55b426381"} device-1 | {"level":"info","message":"GET /devices/6268ed05-97e8-4087-92f0-44054f33ce6a? 200 18ms","method":"GET","requestID":"3a9631cfdc446fce3d4246c55b426381","responseTime":18,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9d8906934a59572f6d2ae0104530f3b9","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:39874","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.400072,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} 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":"9d8906934a59572f6d2ae0104530f3b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"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:39874","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.574845,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} 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":"a82df2d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.592575,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} 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":"a82e40f0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.495856525Z"}]},"request_id":"c5e2bc90-e455-4861-a9e5-d668c77adb81","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.7088094} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a82df2d0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.537574731Z"}]},"request_id":"a7f5edf5-b74d-476a-813b-ca46344ee58e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.7093472} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a82e40f0-015b-11ef-b963-057e09d3e358"},"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/0157ac7c-3f4b-4698-917d-3752b869b606? 200 14ms","method":"GET","requestID":"a82df2d0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6268ed05-97e8-4087-92f0-44054f33ce6a? 200 13ms","method":"GET","requestID":"a82e40f0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"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/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687254,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a8385310-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.624306,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} 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":"a838a130-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39644","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.495856525Z"}]},"request_id":"2933a3fc-f84c-43eb-85f6-113d886a661c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.7819676} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a8385310-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.537574731Z"}]},"request_id":"70be1bca-01d0-4bd3-ac4e-c673990a8ea1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.7834504} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"100dae4b-e666-4b30-a6ae-8f04c8d64526","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.7840903} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a838a130-015b-11ef-b963-057e09d3e358"},"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:39644","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.92178,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","rebac_allow":false,"scope_allow":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":"a838c840-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cbd9d212-22bd-4055-9503-699492564caa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.7873867} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fbc6604-2190-4873-9b2d-2fc5742a215b#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fbc6604-2190-4873-9b2d-2fc5742a215b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"d3013bce-5acb-4049-bb85-440df9d13441","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.7874248} 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":"9d8906934a59572f6d2ae0104530f3b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0157ac7c-3f4b-4698-917d-3752b869b606? 200 25ms","method":"GET","requestID":"a8385310-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6268ed05-97e8-4087-92f0-44054f33ce6a? 200 25ms","method":"GET","requestID":"a838a130-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0157ac7c-3f4b-4698-917d-3752b869b606/signaling 200 25ms","method":"POST","requestID":"a838c840-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"POST /experiments? 201 149ms","method":"POST","requestID":"9d8906934a59572f6d2ae0104530f3b9","responseTime":149,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"23/Apr/2024:10:24:24 +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":"9d8906934a59572f6d2ae0104530f3b9"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a4ed74ba-49aa-47ff-b750-5477e5400330","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.8050628} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.697766,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","rebac_allow":false,"scope_allow":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":"a83ce6f0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ae37864c6a9f09f427d382aab2b7168c","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8a93d0f1-ef51-4190-ad9c-9a2a8d1f44eb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.8090794} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.842602,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","rebac_allow":false,"scope_allow":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":"a83d5c20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0157ac7c-3f4b-4698-917d-3752b869b606/signaling 200 20ms","method":"POST","requestID":"a83ce6f0-015b-11ef-b963-057e09d3e358","responseTime":20,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling 200 19ms","method":"POST","requestID":"a83d5c20-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.103929,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ae37864c6a9f09f427d382aab2b7168c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.495856525Z"}]},"request_id":"957546a2-0925-4815-9c71-f7f1fd46f7a5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.82648} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"059f54d5-fd55-4be9-9634-e0e9f602e9d4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.8266547} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ae37864c6a9f09f427d382aab2b7168c"},"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:39874","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.122743,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","rebac_allow":false,"scope_allow":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":"a8406960-015b-11ef-b963-057e09d3e358"},"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":"23/Apr/2024:10:24:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0157ac7c-3f4b-4698-917d-3752b869b606? 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":"ae37864c6a9f09f427d382aab2b7168c"} device-1 | {"level":"info","message":"GET /devices/0157ac7c-3f4b-4698-917d-3752b869b606? 200 14ms","method":"GET","requestID":"ae37864c6a9f09f427d382aab2b7168c","responseTime":14,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling 200 9ms","method":"POST","requestID":"a8406960-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"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":"4a5a98bc-59a9-4951-96b4-43410e40b20f"},{"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":"e0fe3a70-9e6f-4bfc-b783-fcb80bc2a900"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"88e3126b-0edb-44fe-8ed2-ba9874984a6a"}]},"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/0157ac7c-3f4b-4698-917d-3752b869b606"},{"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/6268ed05-97e8-4087-92f0-44054f33ce6a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"de7a5fc0c48efe96190fff6cc0525a6c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.684745,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} 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":"a8423e20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.48907,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867864,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2NH0.ZCYCHY13ylmPoxIUFRSlZwFg7r3SQMyXHLQbpBy9-rw"} 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":"de7a5fc0c48efe96190fff6cc0525a6c"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:22.537574731Z"}]},"request_id":"735c3094-f0dd-49af-bfab-6628a003b170","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.8429542} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de7a5fc0c48efe96190fff6cc0525a6c"},"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":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"b71945a2-6eff-4b57-a7f4-64fdd189b029","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.8466923} gateway-1 | {"time_local":"23/Apr/2024:10:24:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6268ed05-97e8-4087-92f0-44054f33ce6a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"de7a5fc0c48efe96190fff6cc0525a6c"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"695c5b2d-7eae-4878-83f0-f815481cde12","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.8469093} device-1 | {"level":"info","message":"GET /devices/6268ed05-97e8-4087-92f0-44054f33ce6a? 200 12ms","method":"GET","requestID":"de7a5fc0c48efe96190fff6cc0525a6c","responseTime":12,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a?"} 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":"a8423e20-015b-11ef-b963-057e09d3e358"},"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/fc6e00cd-9d47-468c-848f-cf668a5e8a0b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 41ms","method":"POST","requestID":"a8423e20-015b-11ef-b963-057e09d3e358","responseTime":41,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"658467ad-79c1-4f19-896a-a642ffa6a992","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.9114118} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.0647,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a84d3aa0-015b-11ef-b963-057e09d3e358"},"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/0157ac7c-3f4b-4698-917d-3752b869b606/signaling 200 9ms","method":"POST","requestID":"a84d3aa0-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bbdb6203-2aae-4040-bbb4-8b8efbbb5611","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867864.9223278} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.622768,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a84f0f60-015b-11ef-b963-057e09d3e358"},"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/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling 200 8ms","method":"POST","requestID":"a84f0f60-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling"} device-1 | {"data":{"peerconnection":"fc6e00cd-9d47-468c-848f-cf668a5e8a0b","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/fc6e00cd-9d47-468c-848f-cf668a5e8a0b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc6e00cd-9d47-468c-848f-cf668a5e8a0b","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":"b46a416c9de8e835cb34d7eac219a97e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606"},{"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/6268ed05-97e8-4087-92f0-44054f33ce6a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 11ms","method":"POST","requestID":"b46a416c9de8e835cb34d7eac219a97e","responseTime":11,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"b46a416c9de8e835cb34d7eac219a97e"} device-1 | {"data":{"peerconnection":"fc6e00cd-9d47-468c-848f-cf668a5e8a0b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fc6e00cd-9d47-468c-848f-cf668a5e8a0b","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/fc6e00cd-9d47-468c-848f-cf668a5e8a0b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc6e00cd-9d47-468c-848f-cf668a5e8a0b","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":"aaef91a6986cd3080f1b8f9925cd75f1","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606"},{"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/6268ed05-97e8-4087-92f0-44054f33ce6a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc6e00cd-9d47-468c-848f-cf668a5e8a0b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce325166-d3d3-421a-8553-0589c1530567","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.0159438} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.897573,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b","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":"a8f5afa0-015b-11ef-b963-057e09d3e358"},"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/fc6e00cd-9d47-468c-848f-cf668a5e8a0b 200 12ms","method":"GET","requestID":"a8f5afa0-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"aaef91a6986cd3080f1b8f9925cd75f1","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"aaef91a6986cd3080f1b8f9925cd75f1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4acca670-e8f8-465b-8cdc-7b32a76400f4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.0536249} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.87418,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a8fb54f0-015b-11ef-b963-057e09d3e358"},"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/0157ac7c-3f4b-4698-917d-3752b869b606/signaling 200 13ms","method":"POST","requestID":"a8fb54f0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dee4b734-15ff-4fd4-b74c-c856c95ec336","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.0685537} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.19017,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"a8fd9ee0-015b-11ef-b963-057e09d3e358"},"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/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling 200 12ms","method":"POST","requestID":"a8fd9ee0-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6dbd463e46c7b002735a68945909107b","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.282021,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867866,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0"} 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":"6dbd463e46c7b002735a68945909107b"},"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/2fbc6604-2190-4873-9b2d-2fc5742a215b"} experiment-1 | {"level":"info","message":"GET /experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b 200 15ms","method":"GET","requestID":"6dbd463e46c7b002735a68945909107b","responseTime":15,"status":200,"url":"/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6dbd463e46c7b002735a68945909107b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c69d31b23f2a96aa2a9d8b417dd23eb5","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.395978,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867866,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0"} 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":"c69d31b23f2a96aa2a9d8b417dd23eb5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.230264,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867866,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0"} 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":"a90a2200-015b-11ef-b963-057e09d3e358"},"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/fc6e00cd-9d47-468c-848f-cf668a5e8a0b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc6e00cd-9d47-468c-848f-cf668a5e8a0b","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc6e00cd-9d47-468c-848f-cf668a5e8a0b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc6e00cd-9d47-468c-848f-cf668a5e8a0b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"7b03b571-373b-4796-966b-92eb8443da9c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.1689885} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1df460f-d7e6-4b8f-8172-db8bd1af0401","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.169249} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"57143ebe617a84ce270c2982f6433322","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":"a90a2200-015b-11ef-b963-057e09d3e358"},"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":"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/0157ac7c-3f4b-4698-917d-3752b869b606"},{"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/6268ed05-97e8-4087-92f0-44054f33ce6a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c2482b0ef6195ed10149f767060de35d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606"},{"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/6268ed05-97e8-4087-92f0-44054f33ce6a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"fc6e00cd-9d47-468c-848f-cf668a5e8a0b","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/fc6e00cd-9d47-468c-848f-cf668a5e8a0b 204 65ms","method":"DELETE","requestID":"a90a2200-015b-11ef-b963-057e09d3e358","responseTime":65,"status":204,"url":"/peerconnections/fc6e00cd-9d47-468c-848f-cf668a5e8a0b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0157ac7c-3f4b-4698-917d-3752b869b606","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"96570913-eb65-4364-98fe-977eee5f3fbc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.2413397} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.163286,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0157ac7c-3f4b-4698-917d-3752b869b606","object_type":"device","rebac_allow":false,"scope_allow":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":"a91804b0-015b-11ef-b963-057e09d3e358"},"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/0157ac7c-3f4b-4698-917d-3752b869b606/signaling 200 15ms","method":"POST","requestID":"a91804b0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/0157ac7c-3f4b-4698-917d-3752b869b606/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fbc6604-2190-4873-9b2d-2fc5742a215b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fbc6604-2190-4873-9b2d-2fc5742a215b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"505a4b7d-5ab8-4af0-a474-717c3f901a8a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.2516751} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45aa3a6d-6ffa-4211-ad89-1bf9b318eb12","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.2521431} 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":"c69d31b23f2a96aa2a9d8b417dd23eb5"},"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:39874","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6268ed05-97e8-4087-92f0-44054f33ce6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e8bb929d-1760-4e94-844d-d6a84effb85b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.2611833} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.319624,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a","object_type":"device","rebac_allow":false,"scope_allow":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":"a91aeae0-015b-11ef-b963-057e09d3e358"},"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/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling 200 15ms","method":"POST","requestID":"a91aeae0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/6268ed05-97e8-4087-92f0-44054f33ce6a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c69d31b23f2a96aa2a9d8b417dd23eb5"} experiment-1 | {"level":"info","message":"DELETE /experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b 204 193ms","method":"DELETE","requestID":"c69d31b23f2a96aa2a9d8b417dd23eb5","responseTime":193,"status":204,"url":"/experiments/2fbc6604-2190-4873-9b2d-2fc5742a215b"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2399","request_time":"3.217","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"980c786a877ffc8b8923101040127ca6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"57143ebe617a84ce270c2982f6433322","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"57143ebe617a84ce270c2982f6433322"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 150ms","method":"POST","requestID":"c2482b0ef6195ed10149f767060de35d","responseTime":150,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.157","http_referrer":"","http_user_agent":"node-fetch","requestID":"c2482b0ef6195ed10149f767060de35d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"de48d672be39f9db960e115811e90e95","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.827655,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2156","request_time":"1.754","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3c41c1075f3a135ce9c9d88076770da9"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867866,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0"} 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":"de48d672be39f9db960e115811e90e95"},"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/0157ac7c-3f4b-4698-917d-3752b869b606' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"afc93479-9822-4625-ac73-14567cbc24e7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.350851} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de48d672be39f9db960e115811e90e95"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"606ece9d-f744-4112-8079-abe5071294c1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.356146} 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":"de48d672be39f9db960e115811e90e95"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6268ed05-97e8-4087-92f0-44054f33ce6a' closed"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"3b1a32f7-4f24-4280-b2fd-8839a2da6123","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.3664618} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c4ef698-a921-40b9-9cf5-f514f0a4f19a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.3666465} 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":"de48d672be39f9db960e115811e90e95"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.366438572Z"}]},"request_id":"a3ee303c-c6bd-4e8c-82f1-022406da7844","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.3710263} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de48d672be39f9db960e115811e90e95"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"de48d672be39f9db960e115811e90e95","responseTime":45,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"de48d672be39f9db960e115811e90e95"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a5d732901dbf0038ae806c451a4ccbbd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.749913,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867866,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0"} 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":"a5d732901dbf0038ae806c451a4ccbbd"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c2e9f3c1-d4cd-478d-a516-1a81a8d7f3ae","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.395383} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5d732901dbf0038ae806c451a4ccbbd"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40dca7de-e548-45d0-98fa-c2cadb3be80f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.4002066} 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":"a5d732901dbf0038ae806c451a4ccbbd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"a8c50b15-527a-4dbb-b549-c4d8a6fe7aad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.4096544} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"57e60f98-a0d9-4798-93d2-21812ab5db72","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.4098027} 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":"a5d732901dbf0038ae806c451a4ccbbd"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.409629649Z"}]},"request_id":"c87470d1-f8b8-4f88-b9f7-f16252a7ddec","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.4141893} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5d732901dbf0038ae806c451a4ccbbd"},"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 37ms","method":"POST","requestID":"a5d732901dbf0038ae806c451a4ccbbd","responseTime":37,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a5d732901dbf0038ae806c451a4ccbbd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d4f4bd5637ddc7b12b8c0f290e37f8ba","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.126359,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867866,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0"} 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":"d4f4bd5637ddc7b12b8c0f290e37f8ba"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.366438572Z"}]},"request_id":"269bc882-839d-4636-8f11-d6eb23028515","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.8989995} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4f4bd5637ddc7b12b8c0f290e37f8ba"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29eaaa26-6f01-41ef-a70a-585569a48d7e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.9048405} 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":"d4f4bd5637ddc7b12b8c0f290e37f8ba"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.366438572Z"}]},"request_id":"ec67cb08-6b52-4d37-a327-977b99248498","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867866.9231942} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4f4bd5637ddc7b12b8c0f290e37f8ba"},"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/6d3caab3-5475-4285-bb61-c55a71c088f5 200 38ms","method":"PATCH","requestID":"d4f4bd5637ddc7b12b8c0f290e37f8ba","responseTime":38,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6d3caab3-5475-4285-bb61-c55a71c088f5 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":"d4f4bd5637ddc7b12b8c0f290e37f8ba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"69ba909a774c7eac15c1d69f9dcb21f4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.159995,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867866,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2Nn0.Dj8yNrLJtH25mdtqhMKw4Mrylg8sAuU0Nff5uzO9vE0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"69ba909a774c7eac15c1d69f9dcb21f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6d3caab3-5475-4285-bb61-c55a71c088f5/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":"69ba909a774c7eac15c1d69f9dcb21f4"} device-1 | {"level":"info","message":"POST /devices/6d3caab3-5475-4285-bb61-c55a71c088f5/websocket 200 21ms","method":"POST","requestID":"69ba909a774c7eac15c1d69f9dcb21f4","responseTime":21,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5' 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":"c5f1dce08850423a739c73bec17aeb89","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f3dc4be1-4106-4324-826a-cef47fab62ef/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":"c5f1dce08850423a739c73bec17aeb89"} device-1 | {"level":"info","message":"OPTIONS /devices/f3dc4be1-4106-4324-826a-cef47fab62ef/websocket 200 1ms","method":"OPTIONS","requestID":"c5f1dce08850423a739c73bec17aeb89","responseTime":1,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1ee6d6acb2ed42ae11564abe5b46211f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.181228,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ee6d6acb2ed42ae11564abe5b46211f"},"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/f3dc4be1-4106-4324-826a-cef47fab62ef/websocket 200 38ms","method":"POST","requestID":"1ee6d6acb2ed42ae11564abe5b46211f","responseTime":38,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f3dc4be1-4106-4324-826a-cef47fab62ef/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1ee6d6acb2ed42ae11564abe5b46211f"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"a052cd9d3c812931c0e9782f768b6369","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.13637,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a052cd9d3c812931c0e9782f768b6369"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.366438572Z"}]},"request_id":"c180715f-37fb-402e-94f5-22954a0459df","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.5052266} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a052cd9d3c812931c0e9782f768b6369"},"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/6d3caab3-5475-4285-bb61-c55a71c088f5? 200 18ms","method":"GET","requestID":"a052cd9d3c812931c0e9782f768b6369","responseTime":18,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6d3caab3-5475-4285-bb61-c55a71c088f5? 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":"a052cd9d3c812931c0e9782f768b6369"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"83d5558480cce0d66de8a6f2bd1e0a19","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.051584,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"83d5558480cce0d66de8a6f2bd1e0a19"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.409629649Z"}]},"request_id":"5211324f-fc2b-48f7-a40e-abe5b60ed193","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.530104} 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":"83d5558480cce0d66de8a6f2bd1e0a19"},"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/f3dc4be1-4106-4324-826a-cef47fab62ef? 200 19ms","method":"GET","requestID":"83d5558480cce0d66de8a6f2bd1e0a19","responseTime":19,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f3dc4be1-4106-4324-826a-cef47fab62ef? 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":"83d5558480cce0d66de8a6f2bd1e0a19"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f27af60f2bfe5cae7e0bce407d0c4695","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:39874","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.291781,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"f27af60f2bfe5cae7e0bce407d0c4695"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"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:39874","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.019778,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa7e7280-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.939622,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa7ec0a0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.366438572Z"}]},"request_id":"90a326eb-52db-4792-ac32-ae14a5876266","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.595613} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa7e7280-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.409629649Z"}]},"request_id":"061e4674-8650-476d-b9d0-bd6c599846fd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.5967422} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa7ec0a0-015b-11ef-b963-057e09d3e358"},"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/6d3caab3-5475-4285-bb61-c55a71c088f5? 200 18ms","method":"GET","requestID":"aa7e7280-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f3dc4be1-4106-4324-826a-cef47fab62ef? 200 16ms","method":"GET","requestID":"aa7ec0a0-015b-11ef-b963-057e09d3e358","responseTime":16,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"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/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.186159,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.336328,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39644","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"aa874c20-015b-11ef-b963-057e09d3e358"},"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/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"aa877330-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39644","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.342458,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7dc4413f-b9bf-4f38-80ad-fb7789dca9c3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.6525686} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","rebac_allow":false,"scope_allow":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":"aa879a40-015b-11ef-b963-057e09d3e358"},"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/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling 200 17ms","method":"POST","requestID":"aa879a40-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.366438572Z"}]},"request_id":"1d23a273-6d25-4dfe-8df1-c2b8493ae48b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.6602132} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.409629649Z"}]},"request_id":"010ad282-91e5-429f-ba2d-ae6ef114e7ad","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.6613982} 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":"aa874c20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"aa877330-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"GET /devices/6d3caab3-5475-4285-bb61-c55a71c088f5? 200 28ms","method":"GET","requestID":"aa874c20-015b-11ef-b963-057e09d3e358","responseTime":28,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F33e81774-bb61-49d5-bcf4-a361ac29d0a4#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F33e81774-bb61-49d5-bcf4-a361ac29d0a4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"e061f990-d6c0-4a57-b3ab-fa0272604f90","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.6693425} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7c8afa3-d838-4728-90ca-6024faf25725","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.669609} 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":"f27af60f2bfe5cae7e0bce407d0c4695"},"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:39874","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f3dc4be1-4106-4324-826a-cef47fab62ef? 200 30ms","method":"GET","requestID":"aa877330-015b-11ef-b963-057e09d3e358","responseTime":30,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf91ecf8-aa6f-4bf9-9888-010eec274d85","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.673367} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.203615,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"aa8aa780-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.143","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f27af60f2bfe5cae7e0bce407d0c4695"} experiment-1 | {"level":"info","message":"POST /experiments? 201 138ms","method":"POST","requestID":"f27af60f2bfe5cae7e0bce407d0c4695","responseTime":138,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling 200 17ms","method":"POST","requestID":"aa8aa780-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4f9dc65-2455-425f-9a89-76ec40f2c50d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.6835418} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.408941,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"aa8cf170-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3a57b343a1cdb67dd0ef8d18d47dd34f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} device-1 | {"level":"info","message":"POST /devices/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling 200 13ms","method":"POST","requestID":"aa8cf170-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.870521,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a57b343a1cdb67dd0ef8d18d47dd34f"},"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:39874","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24: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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.366438572Z"}]},"request_id":"ed1052e7-cd5e-4e98-8d80-d76b1f574a0d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.7000089} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6afe5d73-2887-40e0-b222-92fd11953368","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.7000973} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a57b343a1cdb67dd0ef8d18d47dd34f"},"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:39874","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.200911,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"aa8f6270-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6d3caab3-5475-4285-bb61-c55a71c088f5? 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":"3a57b343a1cdb67dd0ef8d18d47dd34f"} device-1 | {"level":"info","message":"GET /devices/6d3caab3-5475-4285-bb61-c55a71c088f5? 200 19ms","method":"GET","requestID":"3a57b343a1cdb67dd0ef8d18d47dd34f","responseTime":19,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling 200 13ms","method":"POST","requestID":"aa8f6270-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"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":"20c9fde0-824c-4cd2-a693-bc63eb03360c"},{"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":"216ccf8e-4c56-4b3c-85d7-fd2c8c24e514"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"f3aabf8e-ebe9-4c31-a8e3-2915f6e1bed0"}]},"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/f3dc4be1-4106-4324-826a-cef47fab62ef"},{"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/6d3caab3-5475-4285-bb61-c55a71c088f5"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","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":"33cb672866bede9214cd5ad0e08e6b83","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.693357,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"aa91fa80-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.61874,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"33cb672866bede9214cd5ad0e08e6b83"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:26.409629649Z"}]},"request_id":"dd6f3667-624f-4eaf-9faa-e76787c49fc1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.721138} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33cb672866bede9214cd5ad0e08e6b83"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f3dc4be1-4106-4324-826a-cef47fab62ef? 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":"33cb672866bede9214cd5ad0e08e6b83"} device-1 | {"level":"info","message":"GET /devices/f3dc4be1-4106-4324-826a-cef47fab62ef? 200 11ms","method":"GET","requestID":"33cb672866bede9214cd5ad0e08e6b83","responseTime":11,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"aff63d1a-a3aa-45fe-ba6b-f49a3bdfc5b3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.7254558} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c283e441-9ad0-4155-968e-adcc0724a957","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.7257628} 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":"aa91fa80-015b-11ef-b963-057e09d3e358"},"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/07409e09-d6a3-408a-be0d-92e8b315488f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 44ms","method":"POST","requestID":"aa91fa80-015b-11ef-b963-057e09d3e358","responseTime":44,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"07409e09-d6a3-408a-be0d-92e8b315488f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c46f8e26-0d6b-4381-8206-5b10d65d69e7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.7907476} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.31673,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","rebac_allow":false,"scope_allow":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":"aa9d4520-015b-11ef-b963-057e09d3e358"},"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/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling 200 9ms","method":"POST","requestID":"aa9d4520-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de23f130-2400-480c-8b11-26cb955dce30","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.802558} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"07409e09-d6a3-408a-be0d-92e8b315488f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.681397,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cfd543af9542a224ca5ea56670f155f1","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa9ef2d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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":"connecting","url":"http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef"},{"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/6d3caab3-5475-4285-bb61-c55a71c088f5"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"cfd543af9542a224ca5ea56670f155f1","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"cfd543af9542a224ca5ea56670f155f1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling 200 23ms","method":"POST","requestID":"aa9ef2d0-015b-11ef-b963-057e09d3e358","responseTime":23,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling"} device-1 | {"data":{"peerconnection":"07409e09-d6a3-408a-be0d-92e8b315488f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"07409e09-d6a3-408a-be0d-92e8b315488f","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/07409e09-d6a3-408a-be0d-92e8b315488f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"07409e09-d6a3-408a-be0d-92e8b315488f","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":"f9552784ac390e7145d992e78b006b41","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/f3dc4be1-4106-4324-826a-cef47fab62ef"},{"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/6d3caab3-5475-4285-bb61-c55a71c088f5"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F07409e09-d6a3-408a-be0d-92e8b315488f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f42deade-4b4c-4c4c-9831-4061fdd9b851","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.874049} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.354649,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f","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":"aaa9ef50-015b-11ef-b963-057e09d3e358"},"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/07409e09-d6a3-408a-be0d-92e8b315488f 200 9ms","method":"GET","requestID":"aaa9ef50-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"f9552784ac390e7145d992e78b006b41","responseTime":25,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"f9552784ac390e7145d992e78b006b41"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0b4c48b8-1baa-4889-88c5-66fa30c60c87","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.8955657} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.234754,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"aaad4ab0-015b-11ef-b963-057e09d3e358"},"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/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling 200 9ms","method":"POST","requestID":"aaad4ab0-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2e738307-c821-4e31-8979-a75ea624f2d5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867868.9058921} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.387099,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","rebac_allow":false,"scope_allow":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":"aaaed150-015b-11ef-b963-057e09d3e358"},"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/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling 200 10ms","method":"POST","requestID":"aaaed150-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"950cec4e8874e1533eab20607debaaf8","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.253164,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"950cec4e8874e1533eab20607debaaf8"},"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/33e81774-bb61-49d5-bcf4-a361ac29d0a4"} gateway-1 | {"time_local":"23/Apr/2024:10:24:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"950cec4e8874e1533eab20607debaaf8"} experiment-1 | {"level":"info","message":"GET /experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4 200 15ms","method":"GET","requestID":"950cec4e8874e1533eab20607debaaf8","responseTime":15,"status":200,"url":"/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a9d13d288079824e6f049864fb9368ff","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.219663,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:28Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"a9d13d288079824e6f049864fb9368ff"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.209657,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867868,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OH0.PIdlPHSAiFiKBfBNBAsTm9eu-Xh3b4DwauLzBruPYBM"} 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":"aabeafd0-015b-11ef-b963-057e09d3e358"},"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/07409e09-d6a3-408a-be0d-92e8b315488f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"07409e09-d6a3-408a-be0d-92e8b315488f","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F07409e09-d6a3-408a-be0d-92e8b315488f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F07409e09-d6a3-408a-be0d-92e8b315488f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"028f48ba-33ae-4566-afbf-e67e3ef06966","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.0292876} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"78ff996002b74e45071e0a6b71d4bdfb","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"de902213-0d45-474d-9a65-a6b64e0602eb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.0300016} 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":"aabeafd0-015b-11ef-b963-057e09d3e358"},"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/f3dc4be1-4106-4324-826a-cef47fab62ef"},{"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/6d3caab3-5475-4285-bb61-c55a71c088f5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8e148fd8ced1cb02dfe4104b322f5035","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/f3dc4be1-4106-4324-826a-cef47fab62ef"},{"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/6d3caab3-5475-4285-bb61-c55a71c088f5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f 204 61ms","method":"DELETE","requestID":"aabeafd0-015b-11ef-b963-057e09d3e358","responseTime":61,"status":204,"url":"/peerconnections/07409e09-d6a3-408a-be0d-92e8b315488f"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3dc4be1-4106-4324-826a-cef47fab62ef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"44d36b80-586a-46e0-b867-885c79377e1c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.0945318} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.269437,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef","object_type":"device","rebac_allow":false,"scope_allow":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":"aacb5a00-015b-11ef-b963-057e09d3e358"},"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/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling 200 15ms","method":"POST","requestID":"aacb5a00-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/f3dc4be1-4106-4324-826a-cef47fab62ef/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F33e81774-bb61-49d5-bcf4-a361ac29d0a4': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F33e81774-bb61-49d5-bcf4-a361ac29d0a4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"02123dfa-6adc-4e74-8fec-602d3b7904e2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.1055312} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a005408-7cf3-49b4-900e-10d47f82282f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.1058197} 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":"a9d13d288079824e6f049864fb9368ff"},"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:39874","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d3caab3-5475-4285-bb61-c55a71c088f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bc63dca2-6ccb-4364-86b4-62583dc5eb27","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.1150346} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.0524,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5","object_type":"device","rebac_allow":false,"scope_allow":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":"aace4030-015b-11ef-b963-057e09d3e358"},"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/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling 200 15ms","method":"POST","requestID":"aace4030-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/6d3caab3-5475-4285-bb61-c55a71c088f5/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9d13d288079824e6f049864fb9368ff"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2216","request_time":"2.218","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"266117747f891a302e96b0794ccd468f"} experiment-1 | {"level":"info","message":"DELETE /experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4 204 184ms","method":"DELETE","requestID":"a9d13d288079824e6f049864fb9368ff","responseTime":184,"status":204,"url":"/experiments/33e81774-bb61-49d5-bcf4-a361ac29d0a4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"78ff996002b74e45071e0a6b71d4bdfb","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"78ff996002b74e45071e0a6b71d4bdfb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"8e148fd8ced1cb02dfe4104b322f5035","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"8e148fd8ced1cb02dfe4104b322f5035"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"5b7c6e47445dd7faa9e0770dcb827564","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2161","request_time":"0.719","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"beaa61602e3de9e6e5a05bb2eca49f88"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6d3caab3-5475-4285-bb61-c55a71c088f5' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.128172,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"5b7c6e47445dd7faa9e0770dcb827564"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f3dc4be1-4106-4324-826a-cef47fab62ef' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2145eeb5-b86d-432e-a977-e1e153261b5c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2023885} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b7c6e47445dd7faa9e0770dcb827564"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ba11c51-5f37-4f2f-ba54-9345b48fd1e4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2086911} 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":"5b7c6e47445dd7faa9e0770dcb827564"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"1600cb73-729b-421b-925f-aedccb84a9e3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.218975} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2e5c474b-fc9e-4127-b013-ee354095c11d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2190366} 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":"5b7c6e47445dd7faa9e0770dcb827564"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.218946989Z"}]},"request_id":"24cc9184-5380-48b9-982c-5221c57a6df5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2249553} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b7c6e47445dd7faa9e0770dcb827564"},"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 46ms","method":"POST","requestID":"5b7c6e47445dd7faa9e0770dcb827564","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5b7c6e47445dd7faa9e0770dcb827564"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7fda4390d8b4dea3bd51b51972c3bbd5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.641252,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"7fda4390d8b4dea3bd51b51972c3bbd5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3312a1fc-6974-4aba-96d7-29619b3073ab","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2514696} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7fda4390d8b4dea3bd51b51972c3bbd5"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89021e73-4a01-45cc-b05c-28610c69a6b7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2565658} 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":"7fda4390d8b4dea3bd51b51972c3bbd5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"e3dbab7e-6f35-4482-a49c-ed33be8f3aff","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2671554} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f51ed885-4457-4676-a432-1a3b22535be9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.2674007} 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":"7fda4390d8b4dea3bd51b51972c3bbd5"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.267121868Z"}]},"request_id":"f8d02b75-edec-4e5e-969e-4425d27b19e8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.271733} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7fda4390d8b4dea3bd51b51972c3bbd5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"7fda4390d8b4dea3bd51b51972c3bbd5","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7fda4390d8b4dea3bd51b51972c3bbd5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d85cf73e29b03da260402e9418d05c20","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"704bcbf38f8087e660e637ff6c9ece0b","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:39874","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.926883,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"d85cf73e29b03da260402e9418d05c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.640994,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"704bcbf38f8087e660e637ff6c9ece0b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.267121868Z"}]},"request_id":"2a04525e-26de-4e9c-bb94-23971ff589bf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.758977} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d85cf73e29b03da260402e9418d05c20"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.218946989Z"}]},"request_id":"c5773475-fa64-4935-b0b4-4a03ee269888","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.75987} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"704bcbf38f8087e660e637ff6c9ece0b"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67ad0b7e-7e25-47b9-aae6-d3be1a595cd2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.7657232} 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":"d85cf73e29b03da260402e9418d05c20"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25b19bdc-27e1-4cd3-9e64-431f5e0f6f8b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.767032} 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":"704bcbf38f8087e660e637ff6c9ece0b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.218946989Z"}]},"request_id":"f7d69b3d-10b8-4e7b-8fbb-c43da8967bda","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.771465} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"704bcbf38f8087e660e637ff6c9ece0b"},"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/89ba43b2-1393-4c2f-9075-0a017feeacdc 200 26ms","method":"PATCH","requestID":"704bcbf38f8087e660e637ff6c9ece0b","responseTime":26,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc 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":"704bcbf38f8087e660e637ff6c9ece0b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f0f6b67ed2c6854ff1836de88505bf01","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661915,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"f0f6b67ed2c6854ff1836de88505bf01"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.267121868Z"}]},"request_id":"35f41c70-a8df-4fa4-b35d-c82adfdfd25f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.7970693} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d85cf73e29b03da260402e9418d05c20"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/77f2965c-d425-4bdb-ae67-6a225ed983da HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.062","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d85cf73e29b03da260402e9418d05c20"} device-1 | {"level":"info","message":"PATCH /devices/77f2965c-d425-4bdb-ae67-6a225ed983da 200 54ms","method":"PATCH","requestID":"d85cf73e29b03da260402e9418d05c20","responseTime":54,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/websocket 200 25ms","method":"POST","requestID":"f0f6b67ed2c6854ff1836de88505bf01","responseTime":25,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/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":"f0f6b67ed2c6854ff1836de88505bf01"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0184be4248b62a8c43fd21d5a9dff1ce","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.916683,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0184be4248b62a8c43fd21d5a9dff1ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/77f2965c-d425-4bdb-ae67-6a225ed983da/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":"0184be4248b62a8c43fd21d5a9dff1ce"} device-1 | {"level":"info","message":"POST /devices/77f2965c-d425-4bdb-ae67-6a225ed983da/websocket 200 24ms","method":"POST","requestID":"0184be4248b62a8c43fd21d5a9dff1ce","responseTime":24,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a62d336d4b56f176cdc8086e37b3e163","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.711896,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"a62d336d4b56f176cdc8086e37b3e163"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.218946989Z"}]},"request_id":"da329516-7d69-4730-bed2-9a3f87e60afc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.8559303} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a62d336d4b56f176cdc8086e37b3e163"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc? 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":"a62d336d4b56f176cdc8086e37b3e163"} device-1 | {"level":"info","message":"GET /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc? 200 12ms","method":"GET","requestID":"a62d336d4b56f176cdc8086e37b3e163","responseTime":12,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"54dc206d33c20eae45bbcffcb6a3f406","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.081541,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"54dc206d33c20eae45bbcffcb6a3f406"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.267121868Z"}]},"request_id":"74eabbea-04ac-40f3-8262-a11332f40430","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.8740902} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"54dc206d33c20eae45bbcffcb6a3f406"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/77f2965c-d425-4bdb-ae67-6a225ed983da? 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":"54dc206d33c20eae45bbcffcb6a3f406"} device-1 | {"level":"info","message":"GET /devices/77f2965c-d425-4bdb-ae67-6a225ed983da? 200 12ms","method":"GET","requestID":"54dc206d33c20eae45bbcffcb6a3f406","responseTime":12,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"eb8264a34aff817fe3e88ba2d7c33fec","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:39874","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.800817,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"eb8264a34aff817fe3e88ba2d7c33fec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"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:39874","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.17559,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab4bfbb0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.580246,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"ab4c22c0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.218946989Z"}]},"request_id":"27c5c137-2e51-44d9-9fe8-9eb2f8d0ded2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.9423609} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab4bfbb0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.267121868Z"}]},"request_id":"fb6eff15-9961-4373-8ff5-b7dd372a15d4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867869.9432273} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab4c22c0-015b-11ef-b963-057e09d3e358"},"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/89ba43b2-1393-4c2f-9075-0a017feeacdc? 200 21ms","method":"GET","requestID":"ab4bfbb0-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/77f2965c-d425-4bdb-ae67-6a225ed983da? 200 22ms","method":"GET","requestID":"ab4c22c0-015b-11ef-b963-057e09d3e358","responseTime":22,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"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:39874","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.206824,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab576d60-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.449012,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"ab57bb80-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"36cfdc80-132a-4106-b14a-f77046b45c09","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0239472} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.218946989Z"}]},"request_id":"681c18f9-de58-4174-a8f8-5e6ebadc278e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0242465} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab576d60-015b-11ef-b963-057e09d3e358"},"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:39874","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":7.563744,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab5809a0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.267121868Z"}]},"request_id":"b37ba232-8e0b-45ef-9952-e4fe213c1362","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0285952} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab57bb80-015b-11ef-b963-057e09d3e358"},"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/89ba43b2-1393-4c2f-9075-0a017feeacdc? 200 26ms","method":"GET","requestID":"ab576d60-015b-11ef-b963-057e09d3e358","responseTime":26,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling 200 26ms","method":"POST","requestID":"ab5809a0-015b-11ef-b963-057e09d3e358","responseTime":26,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4ce337f-18f8-4ed4-a1e8-8dd9e61517c6#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4ce337f-18f8-4ed4-a1e8-8dd9e61517c6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"264eca69-3179-48c5-aeeb-6d4dcb897a28","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0364478} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"389fb083-7c26-4dbf-a275-272df04c017c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0367885} device-1 | {"level":"info","message":"GET /devices/77f2965c-d425-4bdb-ae67-6a225ed983da? 200 30ms","method":"GET","requestID":"ab57bb80-015b-11ef-b963-057e09d3e358","responseTime":30,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da?"} 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":"eb8264a34aff817fe3e88ba2d7c33fec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"10100625-101e-47f0-9a39-6cad8cec97c6","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0455809} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.541736,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ab5c7670-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46b04ab0-ffa5-462f-922e-4b4bd72092cd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0476394} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.479918,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ab5cc490-015b-11ef-b963-057e09d3e358"},"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/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling 200 13ms","method":"POST","requestID":"ab5c7670-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling 200 13ms","method":"POST","requestID":"ab5cc490-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:24:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eb8264a34aff817fe3e88ba2d7c33fec"} experiment-1 | {"level":"info","message":"POST /experiments? 201 172ms","method":"POST","requestID":"eb8264a34aff817fe3e88ba2d7c33fec","responseTime":172,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5a326b54aec3cf1e89ff700c61db8b73","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3bff2280-e2ad-4215-8dd1-b2483bfb03a4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0621052} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.426002,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ab5f5ca0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.630431,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867870,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5a326b54aec3cf1e89ff700c61db8b73"},"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/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling 200 9ms","method":"POST","requestID":"ab5f5ca0-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da/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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.218946989Z"}]},"request_id":"4170dfbf-6863-47c9-8c50-344e8e32bc0a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.068237} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"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":"d5da6568-bca4-4386-a967-816df0c32560"},{"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":"d2b58d2c-6953-472e-836a-ccff8e395dcb"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"52fd4492-42ec-4519-a003-419e06aac96f"}]},"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/77f2965c-d425-4bdb-ae67-6a225ed983da"},{"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/89ba43b2-1393-4c2f-9075-0a017feeacdc"}],"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":"5a326b54aec3cf1e89ff700c61db8b73"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} device-1 | {"level":"info","message":"GET /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc? 200 13ms","method":"GET","requestID":"5a326b54aec3cf1e89ff700c61db8b73","responseTime":13,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc? 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":"5a326b54aec3cf1e89ff700c61db8b73"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.766782,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867869,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg2OX0.-G5uPApNcHJWhi8_4pY_n0gy3N1BoT6_h5-aiBQah7w"} 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":"ab613160-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"faa3c596bb5fe434cfd9d9522b348ddf","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.767343,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867870,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"faa3c596bb5fe434cfd9d9522b348ddf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"21e0b0aa-a7ce-4417-a62b-34066d8d4e5e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0833693} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"197aead5-ac67-4ca0-aa11-d72851c1110e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0835354} 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":"ab613160-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:29.267121868Z"}]},"request_id":"79ebb955-9163-4112-adeb-ab3dab6989b1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.0923147} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"faa3c596bb5fe434cfd9d9522b348ddf"},"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/086ab3fe-984d-40ff-91fe-ad888ce905af'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af'"} 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":"ab613160-015b-11ef-b963-057e09d3e358","responseTime":38,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/77f2965c-d425-4bdb-ae67-6a225ed983da? 200 31ms","method":"GET","requestID":"faa3c596bb5fe434cfd9d9522b348ddf","responseTime":31,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/77f2965c-d425-4bdb-ae67-6a225ed983da? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"faa3c596bb5fe434cfd9d9522b348ddf"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"198ce4b3-1f83-47ec-9ffd-2928ccee0015","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.1380699} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.102396,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"e0792933c27a295de8f0e3548f4f6260","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ab6af560-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/77f2965c-d425-4bdb-ae67-6a225ed983da"},{"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/89ba43b2-1393-4c2f-9075-0a017feeacdc"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"e0792933c27a295de8f0e3548f4f6260","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"e0792933c27a295de8f0e3548f4f6260"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling 200 18ms","method":"POST","requestID":"ab6af560-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ccb7f75a-e75a-41ea-b99a-2c0338ab5a50","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.1589215} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.173791,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","rebac_allow":false,"scope_allow":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":"ab6e29b0-015b-11ef-b963-057e09d3e358"},"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/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling 200 11ms","method":"POST","requestID":"ab6e29b0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","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/086ab3fe-984d-40ff-91fe-ad888ce905af' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","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":"2431a91a75c89dad53868dd3ddde01e1","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/77f2965c-d425-4bdb-ae67-6a225ed983da"},{"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/89ba43b2-1393-4c2f-9075-0a017feeacdc"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F086ab3fe-984d-40ff-91fe-ad888ce905af","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc0bce3a-f146-48fe-a760-08e234e62c3a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.1963978} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.03989,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af","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":"ab73cf00-015b-11ef-b963-057e09d3e358"},"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/086ab3fe-984d-40ff-91fe-ad888ce905af 200 8ms","method":"GET","requestID":"ab73cf00-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 34ms","method":"POST","requestID":"2431a91a75c89dad53868dd3ddde01e1","responseTime":34,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"2431a91a75c89dad53868dd3ddde01e1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"deb3aba8-0140-49f4-9cb0-8fc9ab41c31c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.2240741} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.279694,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ab77edb0-015b-11ef-b963-057e09d3e358"},"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/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling 200 10ms","method":"POST","requestID":"ab77edb0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59c3f215-b5fe-4d39-9d81-779d42b2db25","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.2380662} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.465946,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ab79e980-015b-11ef-b963-057e09d3e358"},"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/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling 200 11ms","method":"POST","requestID":"ab79e980-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"22eaad9809caa5f0b76a88fe21a8256b","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.206269,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867870,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE"} 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":"22eaad9809caa5f0b76a88fe21a8256b"},"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/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"} gateway-1 | {"time_local":"23/Apr/2024:10:24:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6 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":"22eaad9809caa5f0b76a88fe21a8256b"} experiment-1 | {"level":"info","message":"GET /experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6 200 15ms","method":"GET","requestID":"22eaad9809caa5f0b76a88fe21a8256b","responseTime":15,"status":200,"url":"/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"7d27d329058505ea76161134346a11da","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.652453,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867870,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE"} 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":"7d27d329058505ea76161134346a11da"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.159065,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867870,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE"} 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":"ab87a520-015b-11ef-b963-057e09d3e358"},"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/086ab3fe-984d-40ff-91fe-ad888ce905af' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F086ab3fe-984d-40ff-91fe-ad888ce905af': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F086ab3fe-984d-40ff-91fe-ad888ce905af","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"56dc6fff-91a7-4f93-9bcd-fc5458ce7fcd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.346591} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"809fc7b677a3435d69a03d7c47cadcc7","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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6597deaf-2bd0-4bcc-bf1c-4a5f7fc46851","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.3472288} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"ab87a520-015b-11ef-b963-057e09d3e358"},"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","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/77f2965c-d425-4bdb-ae67-6a225ed983da"},{"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/89ba43b2-1393-4c2f-9075-0a017feeacdc"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"817a739ca0b54e5c136593eb9d0d2263","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":"closed","url":"http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da"},{"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/89ba43b2-1393-4c2f-9075-0a017feeacdc"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"086ab3fe-984d-40ff-91fe-ad888ce905af","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/086ab3fe-984d-40ff-91fe-ad888ce905af 204 58ms","method":"DELETE","requestID":"ab87a520-015b-11ef-b963-057e09d3e358","responseTime":58,"status":204,"url":"/peerconnections/086ab3fe-984d-40ff-91fe-ad888ce905af"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77f2965c-d425-4bdb-ae67-6a225ed983da","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9cae444b-2fdf-41e5-8faa-e43d99ff47a5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.4094033} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.070519,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77f2965c-d425-4bdb-ae67-6a225ed983da","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ab942840-015b-11ef-b963-057e09d3e358"},"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/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling 200 13ms","method":"POST","requestID":"ab942840-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/77f2965c-d425-4bdb-ae67-6a225ed983da/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4ce337f-18f8-4ed4-a1e8-8dd9e61517c6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4ce337f-18f8-4ed4-a1e8-8dd9e61517c6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"62cb3f1e-9643-447d-9706-765adb0fc00a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.4198678} 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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e16bd0e2-e818-427d-a1b9-264f298ad67b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.4203072} 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":"7d27d329058505ea76161134346a11da"},"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:39874","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89ba43b2-1393-4c2f-9075-0a017feeacdc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fbcfcf0e-5fe0-4632-ab01-a6a2998de392","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.4284635} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.006931,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc","object_type":"device","rebac_allow":false,"scope_allow":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":"ab96c050-015b-11ef-b963-057e09d3e358"},"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/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling 200 13ms","method":"POST","requestID":"ab96c050-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/89ba43b2-1393-4c2f-9075-0a017feeacdc/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"} gateway-1 | {"time_local":"23/Apr/2024:10:24:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6 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":"7d27d329058505ea76161134346a11da"} gateway-1 | {"time_local":"23/Apr/2024:10:24:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.674","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c363e3651f5b2867d1fde04e983cf033"} experiment-1 | {"level":"info","message":"DELETE /experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6 204 178ms","method":"DELETE","requestID":"7d27d329058505ea76161134346a11da","responseTime":178,"status":204,"url":"/experiments/f4ce337f-18f8-4ed4-a1e8-8dd9e61517c6"} gateway-1 | {"time_local":"23/Apr/2024:10:24:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2161","request_time":"0.651","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9e4d35e8751bf191a76bc0a71272f883"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"809fc7b677a3435d69a03d7c47cadcc7","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"809fc7b677a3435d69a03d7c47cadcc7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"817a739ca0b54e5c136593eb9d0d2263","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.142","http_referrer":"","http_user_agent":"node-fetch","requestID":"817a739ca0b54e5c136593eb9d0d2263"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1962e1068666e9a6ccc9f602b88efbe4","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/77f2965c-d425-4bdb-ae67-6a225ed983da' closed"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.86405,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867870,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE"} 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":"1962e1068666e9a6ccc9f602b88efbe4"},"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/89ba43b2-1393-4c2f-9075-0a017feeacdc' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"58231181-4ab8-4af0-93c4-13542307fa78","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.5114765} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1962e1068666e9a6ccc9f602b88efbe4"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24365894-d392-4ded-b5fd-7910feb6792e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.518155} 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":"1962e1068666e9a6ccc9f602b88efbe4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"afa2d991-3a8b-4c72-993b-d4e351537c64","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.5282018} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"603b29a6-b316-4e52-9984-1830058864a5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.5283432} 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":"1962e1068666e9a6ccc9f602b88efbe4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.528173335Z"}]},"request_id":"6ccf54bb-0111-4497-8a9f-a6ef43dd732a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.534705} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1962e1068666e9a6ccc9f602b88efbe4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"1962e1068666e9a6ccc9f602b88efbe4","responseTime":47,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1962e1068666e9a6ccc9f602b88efbe4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e0926068913ad587466eb0500ad329bc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.911922,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867870,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MH0.YVxzpIRfJQ0oZHlKULJy_I70I3kvov_HZjphJ7tcJvE"} 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":"e0926068913ad587466eb0500ad329bc"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0f6117e8-27c1-4f12-8e2b-c580f15050ca","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.5618787} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0926068913ad587466eb0500ad329bc"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34033f92-2108-41ca-a2c6-ff4e5b723c77","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.571874} 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":"e0926068913ad587466eb0500ad329bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"dbf35bfd-deb3-406c-a0a3-5a45f234efda","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.5834832} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4e7a4fcf-bc78-4c57-9570-1109ba4e8769","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.5835865} 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":"e0926068913ad587466eb0500ad329bc"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.583447603Z"}]},"request_id":"0a8df64d-c5ed-4c50-ac63-044164f50318","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867870.588595} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0926068913ad587466eb0500ad329bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e0926068913ad587466eb0500ad329bc"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"e0926068913ad587466eb0500ad329bc","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5b9b0ec2fda827a7259488330aaead06","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fd3f74b0980c1a90bc10de3ae740912d","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:39874","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.774403,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b9b0ec2fda827a7259488330aaead06"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.54216,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"fd3f74b0980c1a90bc10de3ae740912d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.528173335Z"}]},"request_id":"8e891325-9fe3-4e33-a02b-0c12441f3834","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.0720897} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b9b0ec2fda827a7259488330aaead06"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.583447603Z"}]},"request_id":"ffefd05e-6647-4307-aa68-b33e4335fbb4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.0727782} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd3f74b0980c1a90bc10de3ae740912d"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa8fdbc3-6cd6-486b-bf24-81ec5a8bfed2","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.077404} 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":"5b9b0ec2fda827a7259488330aaead06"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df79b47b-70b6-46e0-b689-833bc414fc19","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.0792892} 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":"fd3f74b0980c1a90bc10de3ae740912d"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.583447603Z"}]},"request_id":"1b5a2094-7fd5-445f-bbca-63cc79844cfc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.082899} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fd3f74b0980c1a90bc10de3ae740912d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/06402421-ead9-4b9f-946f-6e0b16325c0a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.032","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fd3f74b0980c1a90bc10de3ae740912d"} device-1 | {"level":"info","message":"PATCH /devices/06402421-ead9-4b9f-946f-6e0b16325c0a 200 24ms","method":"PATCH","requestID":"fd3f74b0980c1a90bc10de3ae740912d","responseTime":24,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7912fd2b4b3e726fa9f4f6284b01dcd3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.660502,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"7912fd2b4b3e726fa9f4f6284b01dcd3"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.528173335Z"}]},"request_id":"7fc242e2-ff88-4828-be7b-34a3e64f2dfd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.1049325} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b9b0ec2fda827a7259488330aaead06"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd 200 48ms","method":"PATCH","requestID":"5b9b0ec2fda827a7259488330aaead06","responseTime":48,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5b9b0ec2fda827a7259488330aaead06"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"59cf1f5d763276faad9e7c3366257c92","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/06402421-ead9-4b9f-946f-6e0b16325c0a/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":"7912fd2b4b3e726fa9f4f6284b01dcd3"} device-1 | {"level":"info","message":"POST /devices/06402421-ead9-4b9f-946f-6e0b16325c0a/websocket 200 23ms","method":"POST","requestID":"7912fd2b4b3e726fa9f4f6284b01dcd3","responseTime":23,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.734251,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"59cf1f5d763276faad9e7c3366257c92"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"device 'http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/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":"59cf1f5d763276faad9e7c3366257c92"} device-1 | {"level":"info","message":"POST /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/websocket 200 19ms","method":"POST","requestID":"59cf1f5d763276faad9e7c3366257c92","responseTime":19,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"dd3daddf87de1dfebb6a8a43287397e4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.234344,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd3daddf87de1dfebb6a8a43287397e4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.528173335Z"}]},"request_id":"7670575f-4a52-46b7-b713-d172e3f04376","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.1602888} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd3daddf87de1dfebb6a8a43287397e4"},"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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd? 200 14ms","method":"GET","requestID":"dd3daddf87de1dfebb6a8a43287397e4","responseTime":14,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd? 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":"dd3daddf87de1dfebb6a8a43287397e4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"567573cb5ccb22eb6d1a031833e93807","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.818255,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"567573cb5ccb22eb6d1a031833e93807"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.583447603Z"}]},"request_id":"d8db2ba1-1818-4bf3-96c5-7013dcfddaf4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.1793303} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"567573cb5ccb22eb6d1a031833e93807"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/06402421-ead9-4b9f-946f-6e0b16325c0a? 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":"567573cb5ccb22eb6d1a031833e93807"} device-1 | {"level":"info","message":"GET /devices/06402421-ead9-4b9f-946f-6e0b16325c0a? 200 13ms","method":"GET","requestID":"567573cb5ccb22eb6d1a031833e93807","responseTime":13,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c602b57d52b1d239ddb365289d60f022","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:39874","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.966754,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","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":"c602b57d52b1d239ddb365289d60f022"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"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:39874","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.677962,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"ac12f530-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.86783,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"ac131c40-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.528173335Z"}]},"request_id":"5d8e8fa4-00ec-4bfd-9515-fb1d0b28ac30","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.2425816} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac12f530-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.583447603Z"}]},"request_id":"a355d3bd-8ec8-43e5-a956-3520d55e6ac1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.243217} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac131c40-015b-11ef-b963-057e09d3e358"},"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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd? 200 14ms","method":"GET","requestID":"ac12f530-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/06402421-ead9-4b9f-946f-6e0b16325c0a? 200 14ms","method":"GET","requestID":"ac131c40-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"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:39874","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.909842,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.836796,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac1da390-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac1df1b0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39644","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39644","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.887724,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c3b51d90-74c9-4651-8b03-f9d6b5e98e16","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3129013} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","rebac_allow":false,"scope_allow":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":"ac1e18c0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.528173335Z"}]},"request_id":"5fa7d314-7f85-44a8-acd8-8b99c5eddba8","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3202152} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling 200 14ms","method":"POST","requestID":"ac1e18c0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/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":"ac1da390-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.583447603Z"}]},"request_id":"e5602595-3f41-450a-a003-dfca78e291cf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3216293} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac1df1b0-015b-11ef-b963-057e09d3e358"},"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:39874","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd? 200 25ms","method":"GET","requestID":"ac1da390-015b-11ef-b963-057e09d3e358","responseTime":25,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/06402421-ead9-4b9f-946f-6e0b16325c0a? 200 24ms","method":"GET","requestID":"ac1df1b0-015b-11ef-b963-057e09d3e358","responseTime":24,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff7190247-5ecd-4437-9fff-652f0ade7995#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff7190247-5ecd-4437-9fff-652f0ade7995","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"283aec39-b1ee-4a33-be80-4011730413e7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3310976} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cee6d384-f8a0-40cd-be74-05f3142664d1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.33131} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"69864a6b-70f6-48fe-91e5-a1ac8470694c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3314865} 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":"c602b57d52b1d239ddb365289d60f022"},"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:39874","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.291623,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","rebac_allow":false,"scope_allow":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":"ac20b0d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling 200 14ms","method":"POST","requestID":"ac20b0d0-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2f14b77c-e62d-41d5-9f1e-77571de1ba0a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3404627} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.080327,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ac21e950-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +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":"c602b57d52b1d239ddb365289d60f022"} experiment-1 | {"level":"info","message":"POST /experiments? 201 155ms","method":"POST","requestID":"c602b57d52b1d239ddb365289d60f022","responseTime":155,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling 200 12ms","method":"POST","requestID":"ac21e950-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3044a1dbbd665e95dcb5964c88402f2f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.044318,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"3044a1dbbd665e95dcb5964c88402f2f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf5d32b7-a949-4085-94a1-31e842413c4f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3527212} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.687846,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ac240c30-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.528173335Z"}]},"request_id":"8875b409-7295-4229-929a-9282b7b76059","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3580928} device-1 | {"level":"info","message":"POST /devices/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling 200 11ms","method":"POST","requestID":"ac240c30-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a/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":"3044a1dbbd665e95dcb5964c88402f2f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"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":"a2b7f1fb-d82f-4dc3-93f7-4ff4170140c2"},{"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":"00331618-0af3-443b-9a07-979b229d5823"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"52cd3993-eb5b-4756-aff6-cd6bf860e9ef"}]},"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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd"},{"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/06402421-ead9-4b9f-946f-6e0b16325c0a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd? 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":"3044a1dbbd665e95dcb5964c88402f2f"} device-1 | {"level":"info","message":"GET /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd? 200 14ms","method":"GET","requestID":"3044a1dbbd665e95dcb5964c88402f2f","responseTime":14,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd?"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.779716,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"ac262f10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"63c4ed239eb95f11b921ddf2a7a6a00b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658695,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"63c4ed239eb95f11b921ddf2a7a6a00b"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:30.583447603Z"}]},"request_id":"597a98af-2938-4b5f-acff-2232998683fe","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3747463} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"63c4ed239eb95f11b921ddf2a7a6a00b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"3b216de1-23fe-49f4-ab9a-cbb5fbf293a5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3757234} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e641424-1e9f-4b2d-a142-ef737a33abbb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.3760245} 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":"ac262f10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/06402421-ead9-4b9f-946f-6e0b16325c0a? 200 13ms","method":"GET","requestID":"63c4ed239eb95f11b921ddf2a7a6a00b","responseTime":13,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/06402421-ead9-4b9f-946f-6e0b16325c0a? 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":"63c4ed239eb95f11b921ddf2a7a6a00b"} 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/f25b60cb-bc6b-416e-87fe-cccb467f3162'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 42ms","method":"POST","requestID":"ac262f10-015b-11ef-b963-057e09d3e358","responseTime":42,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c544dafbce11e71067243f59fa5a6c80","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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd"},{"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/06402421-ead9-4b9f-946f-6e0b16325c0a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162"}}},"level":"info","message":"received a callback"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"c544dafbce11e71067243f59fa5a6c80","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"c544dafbce11e71067243f59fa5a6c80"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"07bf8bca-753f-42a1-98b4-d3a9242101e5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.4393563} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.386292,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","rebac_allow":false,"scope_allow":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":"ac310480-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling 200 15ms","method":"POST","requestID":"ac310480-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b872360f-ce37-4af2-9309-2db27d34b507","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.453485} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.131105,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","rebac_allow":false,"scope_allow":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":"ac339c90-015b-11ef-b963-057e09d3e358"},"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/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling 200 8ms","method":"POST","requestID":"ac339c90-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling"} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","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/f25b60cb-bc6b-416e-87fe-cccb467f3162' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"4a70c827dfe8243e82a0fdfc240d8e7a","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd"},{"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/06402421-ead9-4b9f-946f-6e0b16325c0a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff25b60cb-bc6b-416e-87fe-cccb467f3162","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee3ba37c-bba5-4fca-9a52-e5af9f1d10c9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.4859047} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.661633,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162","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":"ac387e90-015b-11ef-b963-057e09d3e358"},"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/f25b60cb-bc6b-416e-87fe-cccb467f3162 200 8ms","method":"GET","requestID":"ac387e90-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"4a70c827dfe8243e82a0fdfc240d8e7a","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"4a70c827dfe8243e82a0fdfc240d8e7a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d379f7e3-7af5-4d87-b1cd-f48f5c012581","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.512744} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.728405,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ac3c9d40-015b-11ef-b963-057e09d3e358"},"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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling 200 9ms","method":"POST","requestID":"ac3c9d40-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c04ebc0d-a490-4590-b909-e716ef4071fa","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.5222228} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.084399,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","rebac_allow":false,"scope_allow":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":"ac3e23e0-015b-11ef-b963-057e09d3e358"},"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/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling 200 8ms","method":"POST","requestID":"ac3e23e0-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7bafe06f043ccf5d4603aa52edc51b81","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f7190247-5ecd-4437-9fff-652f0ade7995"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.338398,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"7bafe06f043ccf5d4603aa52edc51b81"},"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/f7190247-5ecd-4437-9fff-652f0ade7995"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f7190247-5ecd-4437-9fff-652f0ade7995 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7bafe06f043ccf5d4603aa52edc51b81"} experiment-1 | {"level":"info","message":"GET /experiments/f7190247-5ecd-4437-9fff-652f0ade7995 200 16ms","method":"GET","requestID":"7bafe06f043ccf5d4603aa52edc51b81","responseTime":16,"status":200,"url":"/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a24218e86e9b6a32d07eb4050be4de4d","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f7190247-5ecd-4437-9fff-652f0ade7995"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.288189,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"a24218e86e9b6a32d07eb4050be4de4d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.348279,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"ac4cc9e0-015b-11ef-b963-057e09d3e358"},"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/f25b60cb-bc6b-416e-87fe-cccb467f3162' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","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":"750e70df5fdfde849582403fe77ea988","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd"},{"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/06402421-ead9-4b9f-946f-6e0b16325c0a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"17f64e06f5c86c3bb7ca8b228cb02a70","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff25b60cb-bc6b-416e-87fe-cccb467f3162': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff25b60cb-bc6b-416e-87fe-cccb467f3162","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"70d2826a-2d19-4f42-9059-a33f2119bce0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.640469} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"95318fcd-d2bb-4554-b19e-499ec366c849","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.6405208} 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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd"},{"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/06402421-ead9-4b9f-946f-6e0b16325c0a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162"}}},"level":"info","message":"received a callback"} 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":"ac4cc9e0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} device-1 | {"data":{"peerconnection":"f25b60cb-bc6b-416e-87fe-cccb467f3162","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/f25b60cb-bc6b-416e-87fe-cccb467f3162 204 56ms","method":"DELETE","requestID":"ac4cc9e0-015b-11ef-b963-057e09d3e358","responseTime":56,"status":204,"url":"/peerconnections/f25b60cb-bc6b-416e-87fe-cccb467f3162"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F516c8ece-e13a-42f2-ab9c-13966b7a3cdd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4aa38eb-fcb2-4318-a7c0-33abc880ce49","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.699444} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.904415,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd","object_type":"device","rebac_allow":false,"scope_allow":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":"ac58b0c0-015b-11ef-b963-057e09d3e358"},"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/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling 200 14ms","method":"POST","requestID":"ac58b0c0-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff7190247-5ecd-4437-9fff-652f0ade7995': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff7190247-5ecd-4437-9fff-652f0ade7995","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"792a9934-88cc-4000-be0c-b81c6f335faf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.708678} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2c116b5-73cd-428a-8e6e-2eb0eb70ed49","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.7090425} 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":"a24218e86e9b6a32d07eb4050be4de4d"},"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:39874","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F06402421-ead9-4b9f-946f-6e0b16325c0a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d7dfc34-8fd4-4b89-8f57-08c75d3030b3","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.7157164} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.683709,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/06402421-ead9-4b9f-946f-6e0b16325c0a","object_type":"device","rebac_allow":false,"scope_allow":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":"ac5b48d0-015b-11ef-b963-057e09d3e358"},"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/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling 200 12ms","method":"POST","requestID":"ac5b48d0-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/06402421-ead9-4b9f-946f-6e0b16325c0a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f7190247-5ecd-4437-9fff-652f0ade7995"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f7190247-5ecd-4437-9fff-652f0ade7995 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":"a24218e86e9b6a32d07eb4050be4de4d"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2161","request_time":"0.664","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cdc760d812e2e440c298bda245445c89"} experiment-1 | {"level":"info","message":"DELETE /experiments/f7190247-5ecd-4437-9fff-652f0ade7995 204 180ms","method":"DELETE","requestID":"a24218e86e9b6a32d07eb4050be4de4d","responseTime":180,"status":204,"url":"/experiments/f7190247-5ecd-4437-9fff-652f0ade7995"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2163","request_time":"0.642","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3789a5c5032caafb5feeff0adccb8159"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/516c8ece-e13a-42f2-ab9c-13966b7a3cdd' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d9b2e8630aeca0b5fb3674a9e5c337c1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.302472,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 154ms","method":"POST","requestID":"750e70df5fdfde849582403fe77ea988","responseTime":154,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"750e70df5fdfde849582403fe77ea988"} 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":"d9b2e8630aeca0b5fb3674a9e5c337c1"},"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/06402421-ead9-4b9f-946f-6e0b16325c0a' closed"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 154ms","method":"POST","requestID":"17f64e06f5c86c3bb7ca8b228cb02a70","responseTime":154,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.161","http_referrer":"","http_user_agent":"node-fetch","requestID":"17f64e06f5c86c3bb7ca8b228cb02a70"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1ac9211a-5b6c-45c5-95d8-7bb51b54aae7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.8076615} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d9b2e8630aeca0b5fb3674a9e5c337c1"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"188f729d-bdbb-4db7-a3df-42aedeb7e00e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.812987} 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":"d9b2e8630aeca0b5fb3674a9e5c337c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"1ec15551-07c1-40e1-98fd-0e0e3b398508","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.8229535} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe141bb5-da2c-46a0-8546-c3bbc7c69b87","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.8231933} 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":"d9b2e8630aeca0b5fb3674a9e5c337c1"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.822923925Z"}]},"request_id":"cee9dfbc-8fe0-4f33-9bf4-b6040549794e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.8279414} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d9b2e8630aeca0b5fb3674a9e5c337c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d9b2e8630aeca0b5fb3674a9e5c337c1"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"d9b2e8630aeca0b5fb3674a9e5c337c1","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"84a20b2955447818e90f4be6ef6c9cc4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.837782,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867871,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3MX0.j4HfH4nq2kWdj08h9NFJtyQvr3N4o0xBm-0Na7etkUY"} 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":"84a20b2955447818e90f4be6ef6c9cc4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9a9225a5-93ec-4080-870e-60efe6a02e88","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.8521495} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84a20b2955447818e90f4be6ef6c9cc4"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"084b7650-74f8-4848-a1b3-678daad0a703","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.856993} 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":"84a20b2955447818e90f4be6ef6c9cc4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"3286fee3-cde8-4abb-92d8-0e1a8159bc33","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.8698947} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bfd06a91-5b3f-4c19-b94f-c1faace4dd12","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.870101} 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":"84a20b2955447818e90f4be6ef6c9cc4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.869861701Z"}]},"request_id":"d9b557ea-82c5-484d-9e59-b77497676d10","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867871.8747213} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84a20b2955447818e90f4be6ef6c9cc4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84a20b2955447818e90f4be6ef6c9cc4"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"84a20b2955447818e90f4be6ef6c9cc4","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a9e9623f21b8da65c637c4f4b5896c62","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/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":"a9e9623f21b8da65c637c4f4b5896c62"} device-1 | {"level":"info","message":"OPTIONS /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/websocket 200 1ms","method":"OPTIONS","requestID":"a9e9623f21b8da65c637c4f4b5896c62","responseTime":1,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8556b08126ecc9d28198cc2fd4b244fe","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.893607,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8556b08126ecc9d28198cc2fd4b244fe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"15035e5669ae4d6144ebe63b53f09923","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/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":"15035e5669ae4d6144ebe63b53f09923"} device-1 | {"level":"info","message":"OPTIONS /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/websocket 200 0ms","method":"OPTIONS","requestID":"15035e5669ae4d6144ebe63b53f09923","responseTime":0,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5faee7a548d18a9e0bd1a64e22e96313","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.326008,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5faee7a548d18a9e0bd1a64e22e96313"},"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/c66102c6-d050-4289-87c0-f12fbfb71f8a/websocket 200 28ms","method":"POST","requestID":"8556b08126ecc9d28198cc2fd4b244fe","responseTime":28,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/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":"8556b08126ecc9d28198cc2fd4b244fe"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/websocket 200 22ms","method":"POST","requestID":"5faee7a548d18a9e0bd1a64e22e96313","responseTime":22,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5faee7a548d18a9e0bd1a64e22e96313"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"713b4274ce6f6d413ae9131b99e94cf0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.969871,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"713b4274ce6f6d413ae9131b99e94cf0"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.822923925Z"}]},"request_id":"0b8354fe-4c74-40fa-aa7c-bf746ac53569","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867873.9070206} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"713b4274ce6f6d413ae9131b99e94cf0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f? 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":"713b4274ce6f6d413ae9131b99e94cf0"} device-1 | {"level":"info","message":"GET /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f? 200 14ms","method":"GET","requestID":"713b4274ce6f6d413ae9131b99e94cf0","responseTime":14,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d3892635c4e86bbc6028a430e60529ed","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743008,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} 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":"d3892635c4e86bbc6028a430e60529ed"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.869861701Z"}]},"request_id":"f776fd56-fc95-42d5-872b-a621cca6d1bf","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867873.9246578} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3892635c4e86bbc6028a430e60529ed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d3892635c4e86bbc6028a430e60529ed"} device-1 | {"level":"info","message":"GET /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a? 200 10ms","method":"GET","requestID":"d3892635c4e86bbc6028a430e60529ed","responseTime":10,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1e7d7fb49758160c1888b6257a8fd2e1","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:39874","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.409681,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} 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":"1e7d7fb49758160c1888b6257a8fd2e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"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:39874","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.812419,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"adb5f6d0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.918841,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"adb644f0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.822923925Z"}]},"request_id":"a6612a0f-05a0-47d2-b8d9-b281bdc8fc2d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867873.99193} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"adb5f6d0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.869861701Z"}]},"request_id":"4f529bc8-5f6d-4f1c-8050-ba1c3d1d7817","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867873.9933655} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"adb644f0-015b-11ef-b963-057e09d3e358"},"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/1e2513e6-d58f-4459-afd7-bd5d53e2188f? 200 18ms","method":"GET","requestID":"adb5f6d0-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a? 200 17ms","method":"GET","requestID":"adb644f0-015b-11ef-b963-057e09d3e358","responseTime":17,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"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/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653818,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} 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":"adc05710-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.888354,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"adc07e20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e7c95534-1805-499b-b556-86c4cee1f244","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.057027} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.495741,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"adc0a530-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.822923925Z"}]},"request_id":"4c86b8f4-3d00-4fd1-b0aa-1bf4c756d3c1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.05898} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"adc05710-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.869861701Z"}]},"request_id":"fb7d814b-0159-4ec4-b35c-d1ad74d0b445","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.0614781} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"adc07e20-015b-11ef-b963-057e09d3e358"},"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/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling 200 13ms","method":"POST","requestID":"adc0a530-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2cab4f17-df30-49fc-9583-2e4a78dfaf8a#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2cab4f17-df30-49fc-9583-2e4a78dfaf8a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"31682ec3-3d61-4acd-8149-4b59310c5b53","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.067781} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04a9e90b-6a56-4923-b0ea-38867c994a58","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.0680666} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f? 200 21ms","method":"GET","requestID":"adc05710-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e7d7fb49758160c1888b6257a8fd2e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} device-1 | {"level":"info","message":"GET /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a? 200 21ms","method":"GET","requestID":"adc07e20-015b-11ef-b963-057e09d3e358","responseTime":21,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2d2dfbf1-2ec5-44e4-a9c6-4b22c78a6f68","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.0718474} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.402932,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","rebac_allow":false,"scope_allow":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":"adc31630-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling 200 10ms","method":"POST","requestID":"adc31630-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 148ms","method":"POST","requestID":"1e7d7fb49758160c1888b6257a8fd2e1","responseTime":148,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.151","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1e7d7fb49758160c1888b6257a8fd2e1"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67dd154e-897e-4489-b40c-85b565dc471f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.0814235} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.266645,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"adc475c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY","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":"29757c7bb1ee218535a2beb58c529cfb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling 200 9ms","method":"POST","requestID":"adc475c0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.918742,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867874,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY"} 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":"29757c7bb1ee218535a2beb58c529cfb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"64a865d7-43c2-4627-97be-281946cb4768","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.09143} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.350795,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"adc62370-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.822923925Z"}]},"request_id":"672f9b36-8b75-42f6-97ec-eef9b9864d18","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.0954218} device-1 | {"level":"info","message":"POST /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling 200 8ms","method":"POST","requestID":"adc62370-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/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":"29757c7bb1ee218535a2beb58c529cfb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"57c383fc-cf0a-4215-8b84-bde05a9cb2ba"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"5fe7b194-1eb8-462c-92aa-9de99fbb49db"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"eee02af6-a02c-4e2a-9daa-3807597c9d7a"}]},"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/c66102c6-d050-4289-87c0-f12fbfb71f8a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f? 200 14ms","method":"GET","requestID":"29757c7bb1ee218535a2beb58c529cfb","responseTime":14,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f? 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":"29757c7bb1ee218535a2beb58c529cfb"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.439686,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867873,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3M30.qMfN8SaVWBPSfTbLfvNHUFUe-1LBvtP_Wy3F-psSZJE"} 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":"adc7d120-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"588d19a2ffabd907b508ad0dec8b7247","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.73808,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867874,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"588d19a2ffabd907b508ad0dec8b7247"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"a9a79c3d-8442-44f0-9094-774c50c02807","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.1147156} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d3ecc5d3-2361-4675-9cb3-c0ed482a6e5b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.1149757} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:31.869861701Z"}]},"request_id":"7ccfd5ea-600b-4d84-98df-e17b9017c43a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.1153512} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"588d19a2ffabd907b508ad0dec8b7247"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"level":"info","message":"POST /relations/update 200 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":"adc7d120-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a? 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":"588d19a2ffabd907b508ad0dec8b7247"} device-1 | {"level":"info","message":"GET /devices/c66102c6-d050-4289-87c0-f12fbfb71f8a? 200 14ms","method":"GET","requestID":"588d19a2ffabd907b508ad0dec8b7247","responseTime":14,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a?"} 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/fd6af309-92e5-48ae-9b15-817afa3be5dd'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 42ms","method":"POST","requestID":"adc7d120-015b-11ef-b963-057e09d3e358","responseTime":42,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7fe88d9d-e409-419b-91fa-238555214922","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.1725032} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.901165,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","rebac_allow":false,"scope_allow":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":"add27f80-015b-11ef-b963-057e09d3e358"},"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/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling 200 8ms","method":"POST","requestID":"add27f80-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"673fa30c-e56d-4232-8568-b79638e3a97c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.1818862} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.022103,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","rebac_allow":false,"scope_allow":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":"add40620-015b-11ef-b963-057e09d3e358"},"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/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling 200 7ms","method":"POST","requestID":"add40620-015b-11ef-b963-057e09d3e358","responseTime":7,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fd6af309-92e5-48ae-9b15-817afa3be5dd","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":"69120a6807dc6601bbbbd462b0466095","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/c66102c6-d050-4289-87c0-f12fbfb71f8a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"69120a6807dc6601bbbbd462b0466095","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"69120a6807dc6601bbbbd462b0466095"} device-1 | {"data":{"peerconnection":"fd6af309-92e5-48ae-9b15-817afa3be5dd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fd6af309-92e5-48ae-9b15-817afa3be5dd","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/fd6af309-92e5-48ae-9b15-817afa3be5dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fd6af309-92e5-48ae-9b15-817afa3be5dd","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":"d69cac591df6cd62f5edce1a67282048","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/c66102c6-d050-4289-87c0-f12fbfb71f8a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffd6af309-92e5-48ae-9b15-817afa3be5dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"87081a02-4499-46f9-93e7-be981df895ba","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.4114103} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.724104,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd","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":"adf6d060-015b-11ef-b963-057e09d3e358"},"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/fd6af309-92e5-48ae-9b15-817afa3be5dd 200 9ms","method":"GET","requestID":"adf6d060-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"d69cac591df6cd62f5edce1a67282048","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"d69cac591df6cd62f5edce1a67282048"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5e916391-76a9-401e-85ee-14a18f6c366b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.4376802} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.992022,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"adfaef10-015b-11ef-b963-057e09d3e358"},"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/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling 200 9ms","method":"POST","requestID":"adfaef10-015b-11ef-b963-057e09d3e358","responseTime":9,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aa67ea80-b4e3-48f3-878e-06c6fb08552e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.4492495} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.853283,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"adfc9cc0-015b-11ef-b963-057e09d3e358"},"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/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling 200 10ms","method":"POST","requestID":"adfc9cc0-015b-11ef-b963-057e09d3e358","responseTime":10,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aa93d83e62a59ff5d9f26dca3fdc0d77","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.959247,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867874,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY"} 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":"aa93d83e62a59ff5d9f26dca3fdc0d77"},"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/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa93d83e62a59ff5d9f26dca3fdc0d77"} experiment-1 | {"level":"info","message":"GET /experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a 200 12ms","method":"GET","requestID":"aa93d83e62a59ff5d9f26dca3fdc0d77","responseTime":12,"status":200,"url":"/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"456d84cb5bb6230b328456159a8f0db0","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.669354,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867874,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY"} 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":"456d84cb5bb6230b328456159a8f0db0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.797491,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867874,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY"} 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":"ae085c90-015b-11ef-b963-057e09d3e358"},"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/fd6af309-92e5-48ae-9b15-817afa3be5dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fd6af309-92e5-48ae-9b15-817afa3be5dd","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffd6af309-92e5-48ae-9b15-817afa3be5dd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffd6af309-92e5-48ae-9b15-817afa3be5dd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"6cea779e-afa3-40b4-b2aa-5988b709ec98","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.5389473} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fbd610b5-af69-4bec-81c5-35ba038ae28a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.5393186} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"34fc9e877e471d8548247b6ba34039df","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ae085c90-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} 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/c66102c6-d050-4289-87c0-f12fbfb71f8a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3c390f8cdcac32126cbba718440900b7","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/c66102c6-d050-4289-87c0-f12fbfb71f8a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd 204 56ms","method":"DELETE","requestID":"ae085c90-015b-11ef-b963-057e09d3e358","responseTime":56,"status":204,"url":"/peerconnections/fd6af309-92e5-48ae-9b15-817afa3be5dd"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc66102c6-d050-4289-87c0-f12fbfb71f8a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8bfa847d-f0cf-40b2-b9aa-a4536f403424","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.606611} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.710239,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a","object_type":"device","rebac_allow":false,"scope_allow":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":"ae146a80-015b-11ef-b963-057e09d3e358"},"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/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling 200 13ms","method":"POST","requestID":"ae146a80-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/c66102c6-d050-4289-87c0-f12fbfb71f8a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2cab4f17-df30-49fc-9583-2e4a78dfaf8a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2cab4f17-df30-49fc-9583-2e4a78dfaf8a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"74ef732b-7a68-4dc4-9c28-04c7d578d585","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.6177633} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5f8d642a-d5a7-46cd-98dd-e08cdc6a50c5","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.6180453} 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":"456d84cb5bb6230b328456159a8f0db0"},"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:39874","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e2513e6-d58f-4459-afd7-bd5d53e2188f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dfcaea1d-003b-47fc-844b-e8fcaa6051cc","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.625285} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.046763,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f","object_type":"device","rebac_allow":false,"scope_allow":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":"ae170290-015b-11ef-b963-057e09d3e358"},"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/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling 200 14ms","method":"POST","requestID":"ae170290-015b-11ef-b963-057e09d3e358","responseTime":14,"status":200,"url":"/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a 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":"456d84cb5bb6230b328456159a8f0db0"} experiment-1 | {"level":"info","message":"DELETE /experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a 204 175ms","method":"DELETE","requestID":"456d84cb5bb6230b328456159a8f0db0","responseTime":175,"status":204,"url":"/experiments/2cab4f17-df30-49fc-9583-2e4a78dfaf8a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"34fc9e877e471d8548247b6ba34039df","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"34fc9e877e471d8548247b6ba34039df"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"3c390f8cdcac32126cbba718440900b7","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"3c390f8cdcac32126cbba718440900b7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e3d9dd302e5b2e7c59f7624ef536eb30","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2197","request_time":"0.832","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"02b7fb1c45195639cabeb41ea1146823"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.330689,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2062","request_time":"0.824","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"521fe0c2a9b82828b76d6dc5b8212b4b"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867874,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY"} 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":"e3d9dd302e5b2e7c59f7624ef536eb30"},"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/c66102c6-d050-4289-87c0-f12fbfb71f8a' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1e2513e6-d58f-4459-afd7-bd5d53e2188f' 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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb838c052-6c19-4e8c-af35-99b757af5f4b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6116c23e-1947-4abe-ae5b-922e02ba9899","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7171884} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3d9dd302e5b2e7c59f7624ef536eb30"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9aa99973-4a2d-49a2-a590-1a8aaea6cdff","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7220788} 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":"e3d9dd302e5b2e7c59f7624ef536eb30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb838c052-6c19-4e8c-af35-99b757af5f4b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"18eb9b24-e366-4fa8-9bd6-547dd9549f4e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7315116} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7eda3b0a-c4e0-452f-b644-1c03d60c3632","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.731636} 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":"e3d9dd302e5b2e7c59f7624ef536eb30"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb838c052-6c19-4e8c-af35-99b757af5f4b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb838c052-6c19-4e8c-af35-99b757af5f4b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.731481648Z"}]},"request_id":"47936b68-fe3c-4c56-803d-ca7bb0d5bc0d","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.735398} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3d9dd302e5b2e7c59f7624ef536eb30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":1}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e3d9dd302e5b2e7c59f7624ef536eb30"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"e3d9dd302e5b2e7c59f7624ef536eb30","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c2b6232183fe6844ebefad7efbda95f4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.664663,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867874,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3NH0.iz-rWLvalTvWNvDvj35BKDOvePRUp4YIC4UFBG_jIZY"} 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":"c2b6232183fe6844ebefad7efbda95f4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"99184094-dec2-4347-a841-d666ff173568","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7577918} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2b6232183fe6844ebefad7efbda95f4"},"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:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad7cab20-a6e6-4349-890e-9f1704894868","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7623272} 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":"c2b6232183fe6844ebefad7efbda95f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"e9d89737-a0ae-413c-a9f7-7b9ed91604ed","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7740166} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6d0bde7-9bdf-40b5-a63f-57be87b15c3a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7741687} 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":"c2b6232183fe6844ebefad7efbda95f4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.773991910Z"}]},"request_id":"bb558a6e-f07b-46bf-9da3-810d3989638f","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867874.7778544} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2b6232183fe6844ebefad7efbda95f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"c2b6232183fe6844ebefad7efbda95f4","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2b6232183fe6844ebefad7efbda95f4"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d54876e0cdc0403f9461470bf8b9145e","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ac056562-105b-4988-8b96-6406e2e3e3e2/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":"d54876e0cdc0403f9461470bf8b9145e"} device-1 | {"level":"info","message":"OPTIONS /devices/ac056562-105b-4988-8b96-6406e2e3e3e2/websocket 200 1ms","method":"OPTIONS","requestID":"d54876e0cdc0403f9461470bf8b9145e","responseTime":1,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"11737b19e24b50674c63e9e7c10e6fdd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.238845,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"11737b19e24b50674c63e9e7c10e6fdd"},"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/ac056562-105b-4988-8b96-6406e2e3e3e2/websocket 200 35ms","method":"POST","requestID":"11737b19e24b50674c63e9e7c10e6fdd","responseTime":35,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2/websocket"} gateway-1 | {"time_local":"23/Apr/2024:10:24:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ac056562-105b-4988-8b96-6406e2e3e3e2/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":"11737b19e24b50674c63e9e7c10e6fdd"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"093dce1fe9ac11abdcab3001977c6884","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.321625,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"093dce1fe9ac11abdcab3001977c6884"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.773991910Z"}]},"request_id":"4e8c22f3-2e7e-4c2a-af9e-c226ec175a7b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867876.8367782} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"093dce1fe9ac11abdcab3001977c6884"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ac056562-105b-4988-8b96-6406e2e3e3e2? 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":"093dce1fe9ac11abdcab3001977c6884"} device-1 | {"level":"info","message":"GET /devices/ac056562-105b-4988-8b96-6406e2e3e3e2? 200 17ms","method":"GET","requestID":"093dce1fe9ac11abdcab3001977c6884","responseTime":17,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"652b75fdc7323455239b403daceaec0c","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:39874","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.337399,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} 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":"652b75fdc7323455239b403daceaec0c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"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:39874","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.145208,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b838c052-6c19-4e8c-af35-99b757af5f4b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b838c052-6c19-4e8c-af35-99b757af5f4b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af7496c0-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.268719,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af74e4e0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb838c052-6c19-4e8c-af35-99b757af5f4b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb838c052-6c19-4e8c-af35-99b757af5f4b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.731481648Z"}]},"request_id":"2c314fda-5c80-4b67-bfdc-723dd7f692fd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867876.9198582} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af7496c0-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.773991910Z"}]},"request_id":"8727ac72-9bcd-4721-97fd-705ef78d703c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867876.9213994} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af74e4e0-015b-11ef-b963-057e09d3e358"},"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/b838c052-6c19-4e8c-af35-99b757af5f4b? 200 19ms","method":"GET","requestID":"af7496c0-015b-11ef-b963-057e09d3e358","responseTime":19,"status":200,"url":"/devices/b838c052-6c19-4e8c-af35-99b757af5f4b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ac056562-105b-4988-8b96-6406e2e3e3e2? 200 18ms","method":"GET","requestID":"af74e4e0-015b-11ef-b963-057e09d3e358","responseTime":18,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Attempting to instantiate devices for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.349456,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:36Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/b838c052-6c19-4e8c-af35-99b757af5f4b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/b838c052-6c19-4e8c-af35-99b757af5f4b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} 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":"af7ad850-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"f948f375-8bfb-4646-9d76-f5ad11d6ef6c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867876.9817326} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc466e1c-e4f2-4e2f-8233-399f37bbf042","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867876.9821303} 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":"af7ad850-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication-1 | {"level":"info","message":"POST /token 201 20ms","method":"POST","requestID":"af818f10-015b-11ef-8880-efd968380130","responseTime":20,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/b838c052-6c19-4e8c-af35-99b757af5f4b?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 72ms","method":"POST","requestID":"af7ad850-015b-11ef-b963-057e09d3e358","responseTime":72,"status":201,"url":"/devices/b838c052-6c19-4e8c-af35-99b757af5f4b?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"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:39874","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.81401,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:37Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} 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":"af8deb20-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:37Z"} authorization-1 | {"client_addr":"127.0.0.1:39876","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.64077,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} 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":"af8e3940-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:36.981679050Z"}]},"request_id":"466b1914-1a3e-40b1-bd3a-6ab97a522eec","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867877.0943131} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.773991910Z"}]},"request_id":"6d33b1e5-1c2e-4b2e-bcf2-cc87da70754b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867877.0958679} 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":"af8deb20-015b-11ef-b963-057e09d3e358"},"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:34250","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:37Z"} 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":"af8e3940-015b-11ef-b963-057e09d3e358"},"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:34250","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.980801,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:37Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bae3ad41-206a-4367-aaa0-2e567fc6aad1","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867877.100503} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"GET /devices/763c7426-9734-4ce8-a977-098ce2e3294b? 200 32ms","method":"GET","requestID":"af8deb20-015b-11ef-b963-057e09d3e358","responseTime":32,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b?"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af8e8760-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":24}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90a42802-e45b-4f4f-b6fe-22b7103265c4#owner@http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90a42802-e45b-4f4f-b6fe-22b7103265c4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"372c78ed-58dd-4c3d-9b34-bd8814f886a0","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867877.104447} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bcc20de2-4f28-4366-8c5c-a6a8994195dd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867877.1051102} device-1 | {"level":"info","message":"GET /devices/ac056562-105b-4988-8b96-6406e2e3e3e2? 200 32ms","method":"GET","requestID":"af8e3940-015b-11ef-b963-057e09d3e358","responseTime":32,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2?"} 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":"652b75fdc7323455239b403daceaec0c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device 763c7426-9734-4ce8-a977-098ce2e3294b","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device 763c7426-9734-4ce8-a977-098ce2e3294b\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/763c7426-9734-4ce8-a977-098ce2e3294b/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"af8e8760-015b-11ef-b963-057e09d3e358"} device-1 | {"level":"info","message":"POST /devices/763c7426-9734-4ce8-a977-098ce2e3294b/signaling 404 38ms","method":"POST","requestID":"af8e8760-015b-11ef-b963-057e09d3e358","responseTime":38,"status":404,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b/signaling"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device 763c7426-9734-4ce8-a977-098ce2e3294b"},"status":404}},"level":"error","message":"Could not send status-update message"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4","user":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:37Z"} gateway-1 | {"time_local":"23/Apr/2024:10:24:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.282","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"652b75fdc7323455239b403daceaec0c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 275ms","method":"POST","requestID":"652b75fdc7323455239b403daceaec0c","responseTime":275,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"be6ba4a8-289d-4e22-97ec-17f40bc36a25","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867877.1285126} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.602166,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","rebac_allow":false,"scope_allow":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":"af951710-015b-11ef-b963-057e09d3e358"},"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/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling 200 15ms","method":"POST","requestID":"af951710-015b-11ef-b963-057e09d3e358","responseTime":15,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e6c8256c787e0805e23d35202b9cd431","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"23/Apr/2024:10:24:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/763c7426-9734-4ce8-a977-098ce2e3294b/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":"e6c8256c787e0805e23d35202b9cd431"} device-1 | {"level":"info","message":"OPTIONS /devices/763c7426-9734-4ce8-a977-098ce2e3294b/websocket 200 1ms","method":"OPTIONS","requestID":"e6c8256c787e0805e23d35202b9cd431","responseTime":1,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6InhaV3JJbUVKUjgyZFY2ZE5SSkpBR0dERW1FWHRTS042akNVWlZ5eTkwaFBoU01uNnFla3c1T3NrMGZKS3h5YXBqbWRaX3JlS2x4V2dVLXZkOHNTc1Z3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3OX0.bVsFsl1ncqmT_CciDx4lAeMq3eRG8ZllaHcEhJXDPRg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"63933e48b0910964771de7acdc2c946b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:39Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.175784,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","payload":{"admin":true,"edgeToken":"xZWrImEJR82dV6dNRJJAGGDEmEXtSKN6jCUZVyy90hPhSMn6qekw5Osk0fJKxyapjmdZ_reKlxWgU-vd8sSsVw","iat":1713867879,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6InhaV3JJbUVKUjgyZFY2ZE5SSkpBR0dERW1FWHRTS042akNVWlZ5eTkwaFBoU01uNnFla3c1T3NrMGZKS3h5YXBqbWRaX3JlS2x4V2dVLXZkOHNTc1Z3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3OX0.bVsFsl1ncqmT_CciDx4lAeMq3eRG8ZllaHcEhJXDPRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"63933e48b0910964771de7acdc2c946b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/763c7426-9734-4ce8-a977-098ce2e3294b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"63933e48b0910964771de7acdc2c946b"} device-1 | {"level":"info","message":"POST /devices/763c7426-9734-4ce8-a977-098ce2e3294b/websocket 200 34ms","method":"POST","requestID":"63933e48b0910964771de7acdc2c946b","responseTime":34,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b/websocket"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b' 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":"48a332c29ac8647ab0f3ebcd681e1842","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/763c7426-9734-4ce8-a977-098ce2e3294b"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3OX0.BapffhNRTCtFbDNWg6nnZDAYqYQSXyUwhBrx0EqYaSU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0d28a3b79a066f111d4f89c1fd4406d3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:39Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210621,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867879,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3OX0.BapffhNRTCtFbDNWg6nnZDAYqYQSXyUwhBrx0EqYaSU"} 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":"0d28a3b79a066f111d4f89c1fd4406d3"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:36.981679050Z"}]},"request_id":"27d9f8ae-25d8-42ca-97f5-1a4143ae0002","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867879.2080498} 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":"0d28a3b79a066f111d4f89c1fd4406d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"48a332c29ac8647ab0f3ebcd681e1842","responseTime":26,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"GET /devices/763c7426-9734-4ce8-a977-098ce2e3294b? 200 21ms","method":"GET","requestID":"0d28a3b79a066f111d4f89c1fd4406d3","responseTime":21,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b?"} gateway-1 | {"time_local":"23/Apr/2024:10:24:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/763c7426-9734-4ce8-a977-098ce2e3294b? 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":"0d28a3b79a066f111d4f89c1fd4406d3"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"48a332c29ac8647ab0f3ebcd681e1842"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3OX0.BapffhNRTCtFbDNWg6nnZDAYqYQSXyUwhBrx0EqYaSU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"479dfd1de8e05e12979eba27058ebbc4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:39Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.320426,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867879,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3OX0.BapffhNRTCtFbDNWg6nnZDAYqYQSXyUwhBrx0EqYaSU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"479dfd1de8e05e12979eba27058ebbc4"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.773991910Z"}]},"request_id":"46de4028-437a-44a4-8841-d1a4550cc68a","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867879.2355883} 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":"479dfd1de8e05e12979eba27058ebbc4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"23/Apr/2024:10:24:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ac056562-105b-4988-8b96-6406e2e3e3e2? 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":"479dfd1de8e05e12979eba27058ebbc4"} device-1 | {"level":"info","message":"GET /devices/ac056562-105b-4988-8b96-6406e2e3e3e2? 200 18ms","method":"GET","requestID":"479dfd1de8e05e12979eba27058ebbc4","responseTime":18,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.46906,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} 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":"b28ecf10-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:55120","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55120","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.320412,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} 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":"b28f1d30-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:34.773991910Z"}]},"request_id":"9e2334a9-580e-4f0d-89da-11fcc4d6a15e","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.1296494} 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":"b28f1d30-015b-11ef-b963-057e09d3e358"},"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:50644","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"},"timestamp":"2024-04-23T10:24:36.981679050Z"}]},"request_id":"451afe10-e74c-4a9d-aee6-5e3fce584f3c","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.1315796} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b28ecf10-015b-11ef-b963-057e09d3e358"},"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/ac056562-105b-4988-8b96-6406e2e3e3e2? 200 23ms","method":"GET","requestID":"b28f1d30-015b-11ef-b963-057e09d3e358","responseTime":23,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/763c7426-9734-4ce8-a977-098ce2e3294b? 200 27ms","method":"GET","requestID":"b28ecf10-015b-11ef-b963-057e09d3e358","responseTime":27,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b5bc658-af7c-4672-bb79-1f93cef788e9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.1495311} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.30519,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","rebac_allow":false,"scope_allow":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":"b29362f0-015b-11ef-b963-057e09d3e358"},"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/763c7426-9734-4ce8-a977-098ce2e3294b/signaling 200 13ms","method":"POST","requestID":"b29362f0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b95674ae-0370-4e92-8778-d5592482e8ca","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.1656098} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.758833,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","rebac_allow":false,"scope_allow":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":"b295d3f0-015b-11ef-b963-057e09d3e358"},"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/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling 200 13ms","method":"POST","requestID":"b295d3f0-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"783b7a11-2ffc-48da-b1e9-8c6a17793260"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"19c465d8-8ee5-45a3-b29f-724bada3ae16"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5e90cca1-7a52-4ce8-adf9-08ca59301257"}]},"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/ac056562-105b-4988-8b96-6406e2e3e3e2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.224459,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867876,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg3Nn0.hZYWzlCQwcp33g_i6DVrNUsrffyEbLOYW0mDODlLixA"} 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":"b2986c00-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","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%2F80983e76-3842-473c-acf0-d6d82d29c3e3'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]}},"raw_response":{},"request_id":"aac573f5-64a5-4b8e-bfaf-ea77a487c9ce","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.1954422} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41967598-ac0c-43b8-a40a-ca33410fbe06","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.1959846} 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":"b2986c00-015b-11ef-b963-057e09d3e358"},"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/27f4cc1e-bd15-4e90-8037-daaddd141514'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514'"} 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":"b2986c00-015b-11ef-b963-057e09d3e358","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/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e39f39bf-5c63-4db6-b70b-8691a843c8cd","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.25674} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.135136,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"b2a404c0-015b-11ef-b963-057e09d3e358"},"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/763c7426-9734-4ce8-a977-098ce2e3294b/signaling 200 8ms","method":"POST","requestID":"b2a404c0-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02e8d5a6-4561-4fb3-bf5e-45d815c09dc7","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.2668185} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.18163,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","rebac_allow":false,"scope_allow":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":"b2a58b60-015b-11ef-b963-057e09d3e358"},"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/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling 200 8ms","method":"POST","requestID":"b2a58b60-015b-11ef-b963-057e09d3e358","responseTime":8,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"27f4cc1e-bd15-4e90-8037-daaddd141514","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":"c97dd62f31f797bdc0f466c86c92aa9d","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/ac056562-105b-4988-8b96-6406e2e3e3e2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"c97dd62f31f797bdc0f466c86c92aa9d","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"c97dd62f31f797bdc0f466c86c92aa9d"} device-1 | {"data":{"peerconnection":"27f4cc1e-bd15-4e90-8037-daaddd141514","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"27f4cc1e-bd15-4e90-8037-daaddd141514","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/27f4cc1e-bd15-4e90-8037-daaddd141514' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"27f4cc1e-bd15-4e90-8037-daaddd141514","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":"8b1c7b447a7f2b5593e7ef1045ac1c05","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/ac056562-105b-4988-8b96-6406e2e3e3e2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F27f4cc1e-bd15-4e90-8037-daaddd141514","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8f2ec222-ab21-415c-b53c-a173692d0074","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.4700103} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.522834,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514","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":"b2c45e00-015b-11ef-b963-057e09d3e358"},"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/27f4cc1e-bd15-4e90-8037-daaddd141514 200 11ms","method":"GET","requestID":"b2c45e00-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"8b1c7b447a7f2b5593e7ef1045ac1c05","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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":"8b1c7b447a7f2b5593e7ef1045ac1c05"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c0be2676-1cbc-4223-995c-6c47b72bb18b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.4946342} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.87573,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"b2c855a0-015b-11ef-b963-057e09d3e358"},"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/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling 200 11ms","method":"POST","requestID":"b2c855a0-015b-11ef-b963-057e09d3e358","responseTime":11,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1adb09a3-7757-4dfe-8cf4-aff30aa91f84","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.5092669} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.35486,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"b2ca5170-015b-11ef-b963-057e09d3e358"},"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/763c7426-9734-4ce8-a977-098ce2e3294b/signaling 200 12ms","method":"POST","requestID":"b2ca5170-015b-11ef-b963-057e09d3e358","responseTime":12,"status":200,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg4Mn0.1itkc6RYzY3LBqHkabyXEpxlwbzIzD6uzH5plGzast4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9dfc957c4a1cbad4c8209027669dfa94","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.576332,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867882,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg4Mn0.1itkc6RYzY3LBqHkabyXEpxlwbzIzD6uzH5plGzast4"} 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":"9dfc957c4a1cbad4c8209027669dfa94"},"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/90a42802-e45b-4f4f-b6fe-22b7103265c4"} gateway-1 | {"time_local":"23/Apr/2024:10:24:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4 HTTP/1.1","status": "200","body_bytes_sent":"1180","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9dfc957c4a1cbad4c8209027669dfa94"} experiment-1 | {"level":"info","message":"GET /experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4 200 15ms","method":"GET","requestID":"9dfc957c4a1cbad4c8209027669dfa94","responseTime":15,"status":200,"url":"/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg4Mn0.1itkc6RYzY3LBqHkabyXEpxlwbzIzD6uzH5plGzast4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7468c6cd6615b782226fff2877fad620","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.374578,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"experiment:http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4","object_type":"experiment","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867882,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg4Mn0.1itkc6RYzY3LBqHkabyXEpxlwbzIzD6uzH5plGzast4"} 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":"7468c6cd6615b782226fff2877fad620"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.211819,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"peerconnection:http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867882,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg4Mn0.1itkc6RYzY3LBqHkabyXEpxlwbzIzD6uzH5plGzast4"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","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":"b2d6d490-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"27f4cc1e-bd15-4e90-8037-daaddd141514","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F27f4cc1e-bd15-4e90-8037-daaddd141514': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F27f4cc1e-bd15-4e90-8037-daaddd141514","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"38109be3-84ae-442f-a8dd-6918647f33cb","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.6167176} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4e548a82-f307-43fd-b06f-1955c60db8ff","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.617256} 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":"b2d6d490-015b-11ef-b963-057e09d3e358"},"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 2ms","method":"GET","requestID":"a2880dd2e0760f49f60746573e0d5255","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514"}}},"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":"a0c1c9fa71fbd7e33430985402ae5b28","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} 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/ac056562-105b-4988-8b96-6406e2e3e3e2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"DELETE /peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514 204 41ms","method":"DELETE","requestID":"b2d6d490-015b-11ef-b963-057e09d3e358","responseTime":41,"status":204,"url":"/peerconnections/27f4cc1e-bd15-4e90-8037-daaddd141514"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.239311,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","payload":{"admin":true,"edgeToken":"Wlf-vIwXeDJDkcLRc1opfhdRjqrCA-5cpZlslcomzlCpjda0aoASYhWeua6fBWWzLk4xLv07OJf_NuDSR5A6Jw","iat":1713867882,"sub":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3","subject_alt":"http://localhost/users/80983e76-3842-473c-acf0-d6d82d29c3e3"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzgwOTgzZTc2LTM4NDItNDczYy1hY2YwLWQ2ZDgyZDI5YzNlMyIsImVkZ2VUb2tlbiI6IldsZi12SXdYZURKRGtjTFJjMW9wZmhkUmpxckNBLTVjcFpsc2xjb216bENwamRhMGFvQVNZaFdldWE2ZkJXV3pMazR4THYwN09KZl9OdURTUjVBNkp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxMzg2Nzg4Mn0.1itkc6RYzY3LBqHkabyXEpxlwbzIzD6uzH5plGzast4"} 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":"b2dd8b50-015b-11ef-b963-057e09d3e358"},"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/763c7426-9734-4ce8-a977-098ce2e3294b'"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"ae23c6e0-b7d5-4c54-baf6-ffa0e78dc21b","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.6492934} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5300267a-81ab-4072-9f2a-628ab8821f83","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.6497517} 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":"b2dd8b50-015b-11ef-b963-057e09d3e358"},"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/763c7426-9734-4ce8-a977-098ce2e3294b 204 38ms","method":"DELETE","requestID":"b2dd8b50-015b-11ef-b963-057e09d3e358","responseTime":38,"status":204,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac056562-105b-4988-8b96-6406e2e3e3e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dfa68a3c-f671-4cc6-9c87-0e8ccfe26da4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.6995404} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.197666,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2","object_type":"device","rebac_allow":false,"scope_allow":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":"b2e74f50-015b-11ef-b963-057e09d3e358"},"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/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling 200 13ms","method":"POST","requestID":"b2e74f50-015b-11ef-b963-057e09d3e358","responseTime":13,"status":200,"url":"/devices/ac056562-105b-4988-8b96-6406e2e3e3e2/signaling"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90a42802-e45b-4f4f-b6fe-22b7103265c4': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90a42802-e45b-4f4f-b6fe-22b7103265c4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F80983e76-3842-473c-acf0-d6d82d29c3e3"}]},"store_id":"01HW57NYHG79EVBYGY953CAG4W","writes":null},"raw_response":{},"request_id":"407ebe81-29cb-499b-9362-3372b90f5321","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.7093787} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","store_id":"01HW57NYHG79EVBYGY953CAG4W"},"raw_response":{"authorization_model":{"id":"01HW57NYJGQTSRPWAY1P9NF3MS","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c1433ce1-9355-486d-88cb-e7a35ef361b4","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.7097406} 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":"7468c6cd6615b782226fff2877fad620"},"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:39874","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:50644","raw_request":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","contextual_tuples":null,"store_id":"01HW57NYHG79EVBYGY953CAG4W","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F763c7426-9734-4ce8-a977-098ce2e3294b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1bff267e-fb14-4d40-9e18-3d1afc38c0b9","store_id":"01HW57NYHG79EVBYGY953CAG4W","subsystem":"openfga","timestamp":1713867882.7183475} authorization-1 | {"client_addr":"127.0.0.1:39874","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.550449,"resp_status":200,"subsystem":"opa","time":"2024-04-23T10:24:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","openfga":{"authorization_model_id":"01HW57NYJGQTSRPWAY1P9NF3MS","store":"01HW57NYHG79EVBYGY953CAG4W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b","object_type":"device","rebac_allow":false,"scope_allow":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":"b2e9e760-015b-11ef-b963-057e09d3e358"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} 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/763c7426-9734-4ce8-a977-098ce2e3294b/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"b2e9e760-015b-11ef-b963-057e09d3e358"} device-1 | {"level":"info","message":"POST /devices/763c7426-9734-4ce8-a977-098ce2e3294b/signaling 404 15ms","method":"POST","requestID":"b2e9e760-015b-11ef-b963-057e09d3e358","responseTime":15,"status":404,"url":"/devices/763c7426-9734-4ce8-a977-098ce2e3294b/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/90a42802-e45b-4f4f-b6fe-22b7103265c4"} gateway-1 | {"time_local":"23/Apr/2024:10:24:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.214","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7468c6cd6615b782226fff2877fad620"} experiment-1 | {"level":"info","message":"DELETE /experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4 204 210ms","method":"DELETE","requestID":"7468c6cd6615b782226fff2877fad620","responseTime":210,"status":204,"url":"/experiments/90a42802-e45b-4f4f-b6fe-22b7103265c4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 161ms","method":"POST","requestID":"a2880dd2e0760f49f60746573e0d5255","responseTime":161,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.165","http_referrer":"","http_user_agent":"node-fetch","requestID":"a2880dd2e0760f49f60746573e0d5255"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 159ms","method":"POST","requestID":"a0c1c9fa71fbd7e33430985402ae5b28","responseTime":159,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24: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.163","http_referrer":"","http_user_agent":"node-fetch","requestID":"a0c1c9fa71fbd7e33430985402ae5b28"} gateway-1 | {"time_local":"23/Apr/2024:10:24:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1821","request_time":"3.617","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"705c0df9f12be57ac06a1da85eee6d36"} gateway-1 | {"time_local":"23/Apr/2024:10:24:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2195","request_time":"5.988","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7fe97432f7022641d15d967dd3ee819e"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ac056562-105b-4988-8b96-6406e2e3e3e2' closed"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/763c7426-9734-4ce8-a977-098ce2e3294b' 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":"a2c44a8fd225f041de20d7a57cfacfa8","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/763c7426-9734-4ce8-a977-098ce2e3294b"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 3ms","method":"POST","requestID":"a2c44a8fd225f041de20d7a57cfacfa8","responseTime":3,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"23/Apr/2024:10:24:42 +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":"a2c44a8fd225f041de20d7a57cfacfa8"} authorization-1 exited with code 0 device-1 exited with code 0 federation-1 exited with code 0 experiment-1 exited with code 0 authentication-1 exited with code 0 gateway-1 exited with code 0